Verify the Installation⚓︎
After helm install reports success, confirm that the release is healthy, that the Agent has
registered with xControl, and that the IPX-facing endpoints are listening where the partners expect
them. The commands use the xrouter namespace and release name.
Workloads⚓︎
Every pod labelled as part of xRouter must be Running:
kubectl -n xrouter get pods -l app.kubernetes.io/part-of=xRouter
kubectl -n xrouter get pods -l app.kubernetes.io/part-of=xRouter \
--field-selector=status.phase!=Running,status.phase!=Succeeded
The second command should print nothing. Pods are labelled with their function in
app.kubernetes.io/component; the set for a default install is:
| Component labels | Function |
|---|---|
agent |
Expeto Agent (StatefulSet, with the cli sidecar) |
hss |
HSS with SMS centre |
smf |
SGW-C and PGW-C |
controller, dataplane, idallocator, nrfproxy |
UPF |
nfdiscovery, nfmanagement, accesstoken |
NRF |
configuration, nfconfiguration, monitoring, statistics |
NFCM |
udsf, timer |
UDSF |
alarmhandler, eventhandler |
Fault manager |
MariaDB Galera and Redis run as StatefulSets alongside them.
kubectl -n xrouter get pods -l app.kubernetes.io/component=hss
kubectl -n xrouter logs -l app.kubernetes.io/component=hss --tail=100
Endpoints⚓︎
List the Services and confirm the IPX-facing ports are published the way the partners were told:
kubectl -n xrouter get services
| Port | Protocol | Function |
|---|---|---|
| 3868 | SCTP or TCP | Diameter (HSS) |
| 2905 | SCTP | M3UA for MAP (HSS) |
| 2775 | TCP | SMPP (SMS centre) |
| 2123 | UDP | GTP-C (SMF) |
| 2152 | UDP | GTP-U (UPF) |
With NodePorts, the node address plus the port is what the partners connect to. With MetalLB, the
EXTERNAL-IP of the LoadBalancer Services is the advertised address; check that the routes reach
the peer:
kubectl -n metallb-system get bgppeers,ipaddresspools,bgpadvertisements
kubectl -n metallb-system logs -l component=frr-k8s --tail=50
For Multus attachments, the dataplane and HSS pods hold the fixed addresses:
kubectl -n xrouter exec statefulset/xrouter-upf-dataplane -- ip -br addr
Registration in xControl⚓︎
Open Sites in xControl. The Site whose identifier you gave the chart shows Connected, with the Agent version and its address on the detail page. If it stays Disconnected, read the Agent log and check the identifiers, the token and that the pod resolves and reaches the xControl hostname on port 443:
kubectl -n xrouter logs xrouter-agent-0 -c agent --tail=100
Diameter and MAP peers⚓︎
Once a partner's Diameter Routing Agent or STP is configured, the HSS log records the capability exchange and the M3UA association coming up; a peer that never appears there has a transport, address or firewall problem on the interconnect. The Operations CLI on the Agent pod gives a live view of the HSS and the sessions it serves:
kubectl -n xrouter exec -it xrouter-agent-0 -c cli -- cli
At the prompt, cd lte and ls list the HSS commands; read hss <IMSI> shows a subscriber as the
HSS holds it. The CLI Guide covers the grammar.
End to end⚓︎
With a subscriber provisioned in xControl on a System of this Site and its public xCore installed, an attach from the public network must authenticate through this HSS and its traffic must arrive at the enterprise. The installation and upgrade verification set covers that path under "Enterprise access through the public radio network".