This is an SDN-enabled and open source Residential Gateway Controller, designed to work together with the Fast Residential Gateway Node dataplane deployed at the Central Office. Its purpose is to enable more efficient and centralized management of residential broadband networks ranging from 1 Gbps up to 25 Gbps, while achieving zero-touch deployment of new broadband subscribers.
-
SDN-based architecture – Provides programmability and centralized control for residential broadband networks via REST API and gRPC.
-
Seamless dataplane integration – Works in tandem with the Fast Residential Gateway Node deployed in the Central Office.
-
High-speed broadband support – Scales from 1 Gbps to 25 Gbps for next-generation residential access.
- Support PPPoE Client
- Support DHCP server for per-subscriber LAN users
- Support VLAN tagging for subscriber traffic
- Support SNAT for subscriber traffic
-
Zero-touch provisioning – Automates subscriber onboarding with no manual intervention required.
-
Centralized management – Simplifies operations by consolidating control into a single controller plane.
-
CAPEX and OPEX reduction – Service provider can only deploy a small cheap ONT device with bridge only functionality in subscriber's residence.
-
Network security reduction – Centralized control reduces the attack surface and simplifies security management.
-
Flexible configuration - Support dynamic subscriber and HSI(High Speed Internet) configuration changes via API without service disruption.
┌────────────────────────────────────────────────────────────────┐
│┌────────────────┐ Central Office │
││ BNG/BRAS │ │
││ PPPoE Server │ │
│└────────────────┘ │
│ ▲ │
│ │ PPPoE/IGMP/IPTV over VLAN │
│ ▼ │
│┌────────────────┐ ┌─────────────────┐ ┌─────────────────┐│
││ FastRG Node │───▶│ FastRG etcd │◄───┤FastRG Controller││
││ (grpc: 50052) │ │ (etcd:2379) │ │ gRPC: 50051 ││
││PPPoE Client/NAT│ │ │ │HTTP(s):8080/8443││
││ DHCP Server │◄─────────────────────────▶│ REST API: 8443 ││
│└────────────────┘ └─────────────────┘ │Prometheus: 55688││
│ ▲ └─────────────────┘│
│ │ IPoE over VLAN, VLAN A for Subscriber 1, │
│ ▼ VLAN B for Subscriber 2 │
│┌────────────────┐ │
││ OLT │ ◄────────────────────┐ │
│└────────────────┘ │ │
└───────▲────────────────────────────────────────────────────────┘
│ PON Network │ PON Network
▼ ▼
┌───────────────────┐ ┌───────────────────┐
│┌────────────────┐ │ │┌────────────────┐ │
││ ONT │ │ ││ ONT │ │
│└────────────────┘ │ │└────────────────┘ │
│ ▲ │ │ ▲ │
│ │ IPoE │ │ │ IPoE │
│ ▼ │ │ ▼ │
│┌─────────────────┐│ │┌─────────────────┐│
││Subscriber Device││ ││Subscriber Device││
││ (DHCP client) ││ ││ (DHCP client) ││
│└─────────────────┘│ │└─────────────────┘│
│ Subscriber 1 │ │ Subscriber 2 │
└───────────────────┘ └───────────────────┘ ...
The FastRG Controller can be deployed using Kubernetes, or Helm charts. There are examples to deploy FastRG controller in Kubernetes and Helm. Please refer to the following documentation for detailed deployment instructions:
The FastRG system must work with an etcd cluster for configuration storage. You can either deploy your own etcd cluster or deploy an etcd service in Kubernetes cluster.
- The Etcd service must enable the
2379port for FastRG controller and node to store and retrieve configuration data.
- The FastRG Controller provides a web-based user interface for easy management and monitoring of residential broadband networks. Additionally, it offers REST API and gRPC interfaces for programmatic access and integration with other systems.
- The web UI can be accessed at
http://<controller-ip>:8080orhttps://<controller-ip>:8443by default. - The gRPC server listens on port
50051by default. - The port
8444with https can be used for accessing FastRG controller log file. - FastRG controller also provides Swagger API documentation for REST API at
http://<controller-ip>:8443/swagger/index.htmlby default.
- The web UI can be accessed at
- It also provides Prometheus metrics endpoint for monitoring purposes. The Prometheus metrics can be accessed at
http://<controller-ip>:55688/metricsby default.- All metrics name are prefixed with
fastrg_, please use panels in Grafana dashboard to search them.
- All metrics name are prefixed with
- Please make sure all above ports are enabled in the firewall settings to allow proper communication.
make buildmake testmake docker-buildmake helpmake k8s-create-test-env
make k8s-deploymake k8s-destroy-test-envFollow the instructions in the FastRG Node repository to deploy the FastRG Node and register it with the FastRG Controller. Then you can manage the FastRG Node using the FastRG Controller's web UI or API.
- Support more dataplane features configuration(e.g., NAT port mapping)
- Improve web UI for better user experience
- Support IPv6 dataplane configuration
- Support IGMP traffic passthrough configuration for IPTV service