How liulilittle/openppp2 works
OPENPPP2 is primarily a C++ network runtime, with separate companion applications for desktop and mobile platforms and a Go-based Guardian manager. The documented native workflow is process startup, argument/configuration preparation, mode selection, then client, server, or proxy runtime. The graph emphasizes that core and its network stages; source excerpts are partial, so uncertain wiring and companion-app interactions are omitted.
Main entry points: VEthernetNetworkSwitcher.cpp Virtual network · PppApplication.cpp Application lifecycle · ApplicationMode.cpp Mode selection · ApplicationClientBootstrap.cpp Client runtime
Components 16
Startup and configuration
- Native entry
main.cpp - Application lifecycle
ppp/app/PppApplication.cpp - Argument preparation
ppp/app/ApplicationConfig.cpp - Mode selection
ppp/app/ApplicationMode.cpp
Native runtime
- Client runtime
ppp/app/ApplicationClientBootstrap.cpp - Server runtime
ppp/app/ApplicationServerBootstrap.cpp - Network setup
ppp/app/ApplicationNetwork.cpp
Network services
- Virtual network
ppp/app/client/VEthernetNetworkSwitcher.cpp - DNS handling
ppp/app/client/dns/DnsController.cpp - Datagram routing
ppp/app/client/udp/ClientDatagramPortManager.cpp - TCP/IP stack
common/libtcpip/netstack.cpp - Peer connectivity
ppp/p2p/P2PClientOfferSession.cpp
Platform integration
- Address management
ppp/app/client/AssignedAddressManager.cpp
Other components
- Operator
- Host networking
- Remote peers
Connections 16
- Operator → Native entry: invokes
- Native entry → Application lifecycle: starts
- Application lifecycle → Argument preparation: prepares arguments
- Application lifecycle → Mode selection: runs prepared app
- Mode selection → Client runtime: starts client
- Mode selection → Server runtime: starts server
- Client runtime → Network setup: starts networking
- Server runtime → Network setup: starts networking
- Network setup → Virtual network: configures
- Virtual network → DNS handling: handles DNS
- Virtual network → Datagram routing: routes datagrams
- Virtual network → TCP/IP stack: uses stack
- Client runtime → Peer connectivity: manages offers
- Virtual network → Address management: applies addresses
- Address management → Host networking: configures interfaces
- Peer connectivity → Remote peers: authenticates control