Skip to content
TheRouter is a software packet router based on DPDK an NPF libraries.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bras
ipv6 fix error in rte_lpm6 iterator Jul 25, 2018
vrrp
README.md
bizin.md
bizin_eng.md no message Dec 8, 2017
border_bgp_service_provider_1.md
conf_options.md
frr_vrf.md
install.md fix download links Mar 14, 2019
install_dpdk_16.07.md switch to DPDK 17.11.1 Mar 21, 2018
link_bonding.md dpdk port numeration has changed starting from DPDK 17.x versions. fi… Jun 8, 2018
ppp_codes.txt
quagga_bgp.md
routing_perf_tests.md
source_nat.md "sysctl set mbuf" command is added to configuration files of "use cas… May 28, 2017
the_router_npf.png add small logo Feb 25, 2019
ubuntu_install.dpdk_16.07.md switch to DPDK 17.11.1 Mar 21, 2018
ubuntu_install.md
use_cases.md

README.md

Work in progress.. Stay tuned.

TheRouter is a software packet router based on one of the fastest packet processing libraries. Using modern software technique such as QSBR, lockless data structures and cuckoo hashing enables the router to perform routing (up to 32Mpps) and NAT (up to 6 Mpps) on high packet rates using commodity hardware.

It supports

  • IPv4 static and dynamic routing. Dynamic routing is based on integration with Quagga Routing Suite or FRRouting
  • Dot1q and qinq ethernet encapsulations
  • IP unnumbered
  • ARP, proxy ARP
  • ICMP
  • PBR and multiple routing tables
  • Stateful and stateless firewall and various forms of NAT. This functionality is based on the improved version of NetBSD packet filter
  • Link Aggregation/Link Bonding/LACP
  • NAT events logging via IPFIX (https://tools.ietf.org/html/draft-ietf-behave-ipfix-nat-logging-13#page-11)
  • VRRP (v2 for IPv4 and v3 for IPv6)
  • IPv6 (test phase)
    • Unicast routing
    • ICMPv6
    • Neighbor Discovery Protocol
    • Duplicate address detection
    • Neighbor Unreachability Detection
    • MLD v1, v2
    • SLAAC
    • VRRP v3
  • Flow accounting via IPFIX (test phase)

BRAS/BNG - Broadband Remote Access Server

  • IPoE L2/L3 connected subscribers
  • PPPoE subscribers
  • IPoE - VLAN per subscriber with IP unnumbered support
  • Traffic shaping (Token bucket filter with extended burst value)
  • DHCP relay
  • Redirect subscribers traffic based on multiple routing tables and PBR
  • Radius/CoA
  • BRAS documentation
  • BRAS howto

PPPoE

PPPoE server supports:

  • RADIUS authorization (PAP and CHAP)
  • RADIUS accounting
  • CoA
  • Shaping (Token bucket filter with extended burst value)
  • TCP MSS FIX
  • Redirect subscribers traffic based on multiple routing tables and PBR
  • Full RFC-compliant support PPPoE, LCP, IPCP, PAP, CHAP
  • Up to 40000 concurrent PPPoE subscribers

Configuration

Download

  • Download PPPoE enabled the_router binary for x86_64 (intel core family or higher)

PPPoE roadmap:

  • production and performance tests
  • IPv6 support

Performance tests

Install

Configuration

Use cases

Production cases

You can’t perform that action at this time.