28 Oct 2015

Declarative Routing: Extensible Routing with Declarative Queries

ABSTRACT. The Internet’s core routing infrastructure, while arguably robust and efficient, has proven to be difficult to evolve to accommodate the needs of new applications.

Today’s Internet routing protocols, while arguably robust and efficient, are hard to change to accommodate the needs of new applications such as improved resilience and higher throughput. Upgrading even a single router is hard [16]. Getting a distributed routing protocol implemented correctly is even harder. And in order to change or upgrade a deployed routing protocol today, one must get access to each router to modify its software.

several solutions
overlay
active networks[14]

It is based on the observation that recursive query languages studied in the deductive database literature [5, 23] are a natural fit for expressing routing protocols. Deductive database query languages focus on identifying recursive relationships among nodes of a graph, and are well suited for expressing paths among nodes in a network.

declarative routing
a routing protocol is implemented by writing a simple query in a declarative query language like Datalog, which is then executed in a distributed fashion at some or all of the nodes.

Datalog queries can express a variety of well-known routing proto- cols (e.g., distance vector, path vector, dynamic source rout- ing, link state, multicast) in a compact and clean fashion

Moreover, higher-level routing concepts (e.g., QoS constraints) can be achieved via simple modifications to these queries.

system model