View on GitHub


SRv6 uSID (micro segment) implementation on P4

ROSE project

The SRv6 “micro segment” (uSID for short) solution is an extension to the SRv6 Network Programming model. It allows expressing SRv6 segments with a very compact and efficient representation, for example using two bytes for uSID instead of using a normal IPv6 address (16 bytes) for a regular SRv6 segment.

In the context of the ROSE project, we have implemented the SRv6 uSID solution using the P4 language and realized a DEMO, illustrated in the following figure.


The demo runs on a mininet topology made up of eight P4 enabled switches (based on bmv2 P4 software implementation) and two hosts that represent Site A and Site B. The source code and the detailed instruction to run the demo are reported below.

P4 SRv6 uSID implementation source code and demo

Reference IETF documents

“Network Programming extension: SRv6 uSID instruction” Internet Draft

“SRv6 Network Programming” Internet Draft

“IPv6 Segment Routing Header (SRH)” RFC 8754

The P4 SRv6 uSID’s Team