System Overview
1xBTS is organized as explicit network nodes. The cdma-nib binary can run the stack together on one host, while the configuration model keeps BTS, BSC, HRPD AN, MSC, PCF, PDSN, HLR, SMSC, and the voice gateway as separate responsibilities.
The node architecture is hybrid: CDMA2000 1x and EV-DO / HRPD use separate radio access paths, but converge at the shared PCF/PDSN packet core. The BSC owns 1x voice, SMS, and SO7/SO33 packet-data control; the HRPD AN owns EV-DO UATI sessions, traffic connections, and Default Packet Application streams. HLR/SMSC remain shared subscriber services: 1x uses them for registration and messaging, and the HRPD AN bridge uses HLR hardware-identity resolution to map ESN/MEID to IMSI before completing A9 setup.
Standards Interfaces
| Interface | Nodes | Transport | Purpose |
|---|---|---|---|
| Abis signaling | BTS ↔ BSC | TCP 5604 with F634 framing | BTS/BSC control messages |
| Abis bearer | BTS ↔ BSC | UDP — BTS-side 17014, BSC-side 17022 | traffic frames and timing metadata |
| A1 | BSC ↔ MSC | TCP 17013 in the standard runtime | IOS call control |
| A2p | BSC ↔ MSC | per-circuit RTP/UDP | QCELP/EVRC voice bearer with circuit-specific RTP sessions |
| A8/A9 | AN ↔ PCF | A8 keyed GRE, A9 UDP control | HRPD packet-data radio edge |
| A10/A11 | PCF ↔ PDSN | A10 keyed GRE, A11 UDP control | packet-data core anchor |
| A21 | BSC ↔ AN | TCP coordination channel | hybrid 1x/HRPD identity, cross-paging, and suppression |
gRPC is not used for these standards interfaces. It is used for management, diagnostics, web UI integration, HLR/SMSC/packet service APIs, the 1x BSC-to-PCF packet client boundary, and SIP voice gateway control.
Packet data is anchored by the PDSN packet service on 127.0.0.1:17021. 1x packet data enters through the BSC using SO7/SO33 traffic channels and the BSC-facing PCF packet client boundary; EV-DO packet data enters through the HRPD AN using Default Packet Application streams and standards A8/A9. The PCF handles radio-edge packet setup for both paths, while the PDSN handles PPP/IP routing. HRPD A8/A10 user traffic uses the bearer mode configured in pcf.json and pdsn.json. UDP-encapsulated GRE works without host privileges; native GRE is available when the host grants raw-socket capability.
Node Responsibilities
| Node | Owns |
|---|---|
| BTS | PHY, local MAC/LAC execution, forward/reverse channel processing, paging transmission, RX measurements, radio diagnostics |
| BSC | 1x radio access state, paging policy, traffic assignment, existing-traffic-channel service negotiation, Abis peer state, A1/A2p behavior, PCF packet-client behavior, optional A21 coordination, power-control policy |
| AN | HRPD session and stream state, UATI allocation, route update, traffic connection setup, Default Signaling, Default Packet Application framing, A8/A9 edge behavior |
| MSC | voice/circuit call policy, A1 state, per-circuit A2p RTP bearer setup, MT/MO call orchestration, preemption, call list management, voice gateway control and media routing, SMS coordination via A1 ADDS |
| PCF | packet-data radio-edge session state, packet setup timers, HRPD A8/A9-facing control, 1x packet-client boundary, and A11 registration toward the PDSN |
| PDSN | packet session anchor, PPP/IPCP, mobile IP allocation, TUN/FOU/FOU-TCP transport, A10/A11-facing state, packet gRPC service |
| HLR | subscriber records, registration bindings, HRPD ESN/MEID-to-IMSI identity resolution, mobiles_seen ledger, and HLR gRPC service backed by PostgreSQL |
| SMSC | SMS submissions, delivery attempts, welcome SMS requests, and SMSC gRPC service backed by PostgreSQL |
| Voice Gateway | MSC-controlled SIP/RTP interop and QCELP/EVRC↔G.711 media conversion |
Deployment
cdma-nib loads per-node configs from config/ and starts the integrated runtime. The checked-in configs wire the BTS and BSC together over localhost Abis TCP/UDP addresses:
cargo run --release -p cdma-nib -- --config-dir configFor split BTS/BSC operation, put the addresses in the local override files (the committed bts.json / bsc.json templates stay untouched): set abis.bind_addr and the BTS-side bearer addresses in config/bts.local.json, and abis.remote_addr plus the BSC-side bearer addresses in config/bsc.local.json, pointing each at the appropriate host.
pcf.json points packet setup at the packet service and configures the PCF side of A8/A10/A11. pdsn.json configures the packet service listener, packet transport, A10 bearer, and the matching A11 security association. When EV-DO is enabled, cdma-nib also starts the HRPD AN service and bridges HRPD air events between the BTS PHY side and AN session side.
Management Plane
| Endpoint | Default | Purpose |
|---|---|---|
| Management facade | 127.0.0.1:17016 | facade plus node-scoped BTS/BSC/PCF/PDSN APIs and HLR/SMSC/packet compatibility routes |
| MSC management | 127.0.0.1:17017 | MSC-owned call actions, call listing, and SMS submission |
| HLR service | 127.0.0.1:17019 | subscriber and registration storage API |
| SMSC service | 127.0.0.1:17020 | SMS submission and delivery storage API |
| Packet service | 127.0.0.1:17021 | packet session service used by PCF/PDSN-facing runtime paths |
| Voice gateway | 127.0.0.1:17015 | MSC-controlled SIP gateway control/media service |
| HRPD AN service | 127.0.0.1:17030 | EV-DO session/air service used by the integrated runtime |
| 1xbts-web | http://localhost:3000 | Next.js UI, API routes, SSE streams |
The management facade gives the web UI one endpoint while node-owned services such as MSC, HLR, SMSC, and packet data keep their own service APIs behind it.