1xBTS 1xBTS

System Overview

System architecture diagram

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

InterfaceNodesTransportPurpose
Abis signalingBTS ↔ BSCTCP 5604 with F634 framingBTS/BSC control messages
Abis bearerBTS ↔ BSCUDP — BTS-side 17014, BSC-side 17022traffic frames and timing metadata
A1BSC ↔ MSCTCP 17013 in the standard runtimeIOS call control
A2pBSC ↔ MSCper-circuit RTP/UDPQCELP/EVRC voice bearer with circuit-specific RTP sessions
A8/A9AN ↔ PCFA8 keyed GRE, A9 UDP controlHRPD packet-data radio edge
A10/A11PCF ↔ PDSNA10 keyed GRE, A11 UDP controlpacket-data core anchor
A21BSC ↔ ANTCP coordination channelhybrid 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

NodeOwns
BTSPHY, local MAC/LAC execution, forward/reverse channel processing, paging transmission, RX measurements, radio diagnostics
BSC1x 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
ANHRPD session and stream state, UATI allocation, route update, traffic connection setup, Default Signaling, Default Packet Application framing, A8/A9 edge behavior
MSCvoice/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
PCFpacket-data radio-edge session state, packet setup timers, HRPD A8/A9-facing control, 1x packet-client boundary, and A11 registration toward the PDSN
PDSNpacket session anchor, PPP/IPCP, mobile IP allocation, TUN/FOU/FOU-TCP transport, A10/A11-facing state, packet gRPC service
HLRsubscriber records, registration bindings, HRPD ESN/MEID-to-IMSI identity resolution, mobiles_seen ledger, and HLR gRPC service backed by PostgreSQL
SMSCSMS submissions, delivery attempts, welcome SMS requests, and SMSC gRPC service backed by PostgreSQL
Voice GatewayMSC-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:

Terminal window
cargo run --release -p cdma-nib -- --config-dir config

For 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

EndpointDefaultPurpose
Management facade127.0.0.1:17016facade plus node-scoped BTS/BSC/PCF/PDSN APIs and HLR/SMSC/packet compatibility routes
MSC management127.0.0.1:17017MSC-owned call actions, call listing, and SMS submission
HLR service127.0.0.1:17019subscriber and registration storage API
SMSC service127.0.0.1:17020SMS submission and delivery storage API
Packet service127.0.0.1:17021packet session service used by PCF/PDSN-facing runtime paths
Voice gateway127.0.0.1:17015MSC-controlled SIP gateway control/media service
HRPD AN service127.0.0.1:17030EV-DO session/air service used by the integrated runtime
1xbts-webhttp://localhost:3000Next.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.