# thuan-hyp-1605/openmptcprouter architecture

> Architecture diagram of the GitHub repository thuan-hyp-1605/openmptcprouter, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/thuan-hyp-1605/openmptcprouter
- Repository: https://github.com/thuan-hyp-1605/openmptcprouter

## Overview

OpenMPTCProuter is a router platform intended to combine multiple WAN connections and carry traffic securely to a VPS, where it exits with a dedicated public IP. The README also describes MPTCP failover, MLVPN, Glorytun UDP, and the broader OpenWrt package ecosystem. The supplied tree is a cross-version collection of kernel and bootloader fragments—not the router’s main orchestration or tunnel implementation—so documented capabilities are shown without inferred internal wiring. Sampled networking code supports only a limited view of the platform layer.

Main entry points: [`5.4/target/linux/x86/files-5.4/drivers/net/ethernet/intel/igc/igc_main.c`](https://github.com/thuan-hyp-1605/openmptcprouter/blob/develop/5.4/target/linux/x86/files-5.4/drivers/net/ethernet/intel/igc/igc_main.c) (Network drivers), [`5.4/target/linux/ipq40xx/files/drivers/net/phy/qca807x.c`](https://github.com/thuan-hyp-1605/openmptcprouter/blob/develop/5.4/target/linux/ipq40xx/files/drivers/net/phy/qca807x.c) (PHY drivers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_wan["WAN aggregation"]
  node_wanlinks(("Internet links"))
  node_mptcp["MPTCP routing"]
  node_failover["Failover mode"]
end

subgraph group_tunnel["Tunnels and egress"]
  node_mlvpn["MLVPN"]
  node_glorytun["Glorytun UDP"]
  node_shadowsocks["Shadowsocks"]
  node_vps["VPS endpoint"]
  node_publicip["Public IP egress"]
end

subgraph group_platform["Router platform"]
  node_router["OpenMPTCProuter"]
  node_openwrt["OpenWrt platform"]
  node_netdrivers["Network drivers<br/>[igc_main.c]"]
  node_phy["PHY drivers<br/>[qca807x.c]"]
  node_packages["Platform packages"]
end

node_user(("Router operator"))

node_user -->|"configures"| node_router
node_wanlinks -->|"connect"| node_router
node_router -->|"routes via"| node_mptcp
node_mptcp -->|"supports"| node_failover
node_router -.->|"can use"| node_mlvpn
node_router -.->|"can use"| node_glorytun
node_router -.->|"can use"| node_shadowsocks
node_mlvpn -.->|"tunnels to"| node_vps
node_glorytun -.->|"tunnels to"| node_vps
node_vps -->|"provides egress"| node_publicip
node_router -->|"runs on"| node_openwrt
node_openwrt -->|"uses"| node_netdrivers
node_openwrt -->|"uses"| node_phy
node_openwrt -->|"supports"| node_packages

click node_netdrivers "https://github.com/thuan-hyp-1605/openmptcprouter/blob/develop/5.4/target/linux/x86/files-5.4/drivers/net/ethernet/intel/igc/igc_main.c"
click node_phy "https://github.com/thuan-hyp-1605/openmptcprouter/blob/develop/5.4/target/linux/ipq40xx/files/drivers/net/phy/qca807x.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_wanlinks,node_mptcp,node_failover toneBlue
class node_mlvpn,node_glorytun,node_shadowsocks,node_vps,node_publicip toneAmber
class node_router,node_openwrt,node_netdrivers,node_phy,node_packages,node_user toneMint
```

## Components

### WAN aggregation

- **Internet links**
- **MPTCP routing**
- **Failover mode**

### Tunnels and egress

- **MLVPN**
- **Glorytun UDP**
- **Shadowsocks**
- **VPS endpoint**
- **Public IP egress**

### Router platform

- **OpenMPTCProuter**
- **OpenWrt platform**
- [Network drivers](https://github.com/thuan-hyp-1605/openmptcprouter/blob/develop/5.4/target/linux/x86/files-5.4/drivers/net/ethernet/intel/igc/igc_main.c): `5.4/target/linux/x86/files-5.4/drivers/net/ethernet/intel/igc/igc_main.c`
- [PHY drivers](https://github.com/thuan-hyp-1605/openmptcprouter/blob/develop/5.4/target/linux/ipq40xx/files/drivers/net/phy/qca807x.c): `5.4/target/linux/ipq40xx/files/drivers/net/phy/qca807x.c`
- **Platform packages**

### Other components

- **Router operator**

## Connections

- Router operator → OpenMPTCProuter: configures
- Internet links → OpenMPTCProuter: connect
- OpenMPTCProuter → MPTCP routing: routes via
- MPTCP routing → Failover mode: supports
- OpenMPTCProuter → MLVPN: can use
- OpenMPTCProuter → Glorytun UDP: can use
- OpenMPTCProuter → Shadowsocks: can use
- MLVPN → VPS endpoint: tunnels to
- Glorytun UDP → VPS endpoint: tunnels to
- VPS endpoint → Public IP egress: provides egress
- OpenMPTCProuter → OpenWrt platform: runs on
- OpenWrt platform → Network drivers: uses
- OpenWrt platform → PHY drivers: uses
- OpenWrt platform → Platform packages: supports
