Open Software Projects

Linux Kernel

The IPv6 dataplane functionalities for Segment Routing are available in the Linux Kernel. Find out how to start using SR on any Linux host.

The Fast Data Project (

Cisco has funded an extensive implementation of SRv6 in open-source project VPP. Find out how to leverage this platform in your network architecture.


Cisco, alongside with other ecosystem partners, has collaborated in the development of the SRv6 uSID implementation in SONiC/SAI. Find out how to leverage this platform in your network architecture:


P4 (named for “Programming Protocol-independent Packet Processors”) is a domain specific programming language for expressing how packets are processed by the data plane of a forwarding element such as a hardware or software switch, network interface card, router, or network appliance.

FRRouting (FRR)

FRRouting (FRR) is a free and open source Internet routing protocol suite for Linux and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric and VRRP, with alpha support for EIGRP and NHRP. FRR is the routing stack used by default in SONiC.

Open vSwitch (OVS)

Open vSwitch (OVS) is an open source, production quality, multilayer virtual switch. It is designed to enable massive network automation through programmatic extension, while still supporting standard management interfaces and protocols (e.g. NetFlow, sFlow, IPFIX, RSPAN, CLI, LACP, 802.1ag).


GoBGP is an open source BGP implementation designed from scratch for modern environment and implemented in a the Go Programming Language.


ExaBGP provides a convenient way to implement Software Defined Networking by transforming BGP messages into friendly plain text or JSON, which can then be easily handled by simple scripts or your BSS/OSS.


GoBMP is an implementation of Open BMP (RFC 7854) protocol’s collector in go language. Collected BGP information can be published to kafka topics, stored in the file in JSON format or printed to stdout.


Wireshark is a free and open source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education.


TCPdump is a common packet analyzer.


Snort is an open-source network intrustion detection and prevention system. SR-Snort is an extended version of Snort with added capabilities.


nftables replaces the popular {ip,ip6,arp,eb}tables. This software provides a new in-kernel packet classification framework. We have added SR capabilities to it.


SERA is a SEgment Routing Aware firewall that extends the Linux iptables firewall. It’s capable of applying the iptables rules to the inner packet of received SR traffic.


The pyroute2 is a python library to interact with Linux ip route using netlink socket.