View on GitHub


An SDN ecosystem for SRv6 on Linux

ROSE project

Segment Routing (SR) is a form of source routing. The SR architecture works by including a list of segments in the packet headers. A segment can represent a topological instruction (e.g. a node to be crossed) or a service instruction (e.g. an operation to be executed on the packet).

We focus on the IPv6 implementation of Segment Routing, called SRv6, in which the segments are identified by IPv6 addresses. An SDN based approach can be used to control SR based services in a Service Provider network. A centralized logic takes decisions on the Segment Lists that need to be applied to implement the services, then the SDN controller interacts with the SR enabled devices to enforce the application of such Segment Lists. In most cases, the SDN controller can interact only with edge nodes to setup and reconfigure complex services, which is very appealing from the point of view of the simplicity and efficiency of the solution.

We present hereafter our open source architecture:

Scientific papers, technical reports, IETF drafts, Slides

pyroute2 extensions to support SRv6

pyroute2 is a lightweight netlink library written in python. We submitted a patch which adds the support for SRv6 basic functionality. We use pyroute2 as “Southbound” of our SRv6Manager


The extension is available from 0.5 release.

SRv6 SDN Architecture and Southbound APIs


TODO: Upload videos and add links

The Team