Skip to content

w180112/fastrg-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastRG(Fast Residential Gateway) Controller

FastRG Controller CI License: BSD-3-Clause

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.

Features / Key Capabilities

  • 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.

Service Architecture

┌────────────────────────────────────────────────────────────────┐
│┌────────────────┐                              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    │
└───────────────────┘           └───────────────────┘       ...

Deployment

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 2379 port for FastRG controller and node to store and retrieve configuration data.

Operation

  • 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>:8080 or https://<controller-ip>:8443 by default.
    • The gRPC server listens on port 50051 by default.
    • The port 8444 with 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.html by default.
  • It also provides Prometheus metrics endpoint for monitoring purposes. The Prometheus metrics can be accessed at http://<controller-ip>:55688/metrics by default.
    • All metrics name are prefixed with fastrg_, please use panels in Grafana dashboard to search them.
  • Please make sure all above ports are enabled in the firewall settings to allow proper communication.

Quick Start and test the FastRG Controller

To build the binary, run:

make build

To test the code, run:

make test

To build Docker image, run:

make docker-build

To show all available make options, run:

make help

To run example Kubernetes environment, run:

make k8s-create-test-env
make k8s-deploy

To clean up test Kubernetes environment, run:

make k8s-destroy-test-env

Register the FastRG Node with the Controller

Follow 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.

Road map

  • 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