Please generate explore.fxt.xml and sessions.fxt.xml for @cp_0804_02.pcap
Ran analyze_capture against the PCAP. Detected 7 protocols: NGAP, HTTP/2, MongoDB, SCTP, PFCP, NAS-5GS, TCP.
Recommended template: 5g-attach/explore.fxt.xml (57% coverage). Better fit found in 5g-core-free5gc which covers HTTP/2 SBA + NGAP + NAS-5GS + PFCP + GTP-U.
Action: Copied 5g-core-free5gc/explore.fxt.xml and 5g-core-free5gc/sessions.fxt.xml from the bundled samples into the PCAP directory.
Validated both against the PCAP:
| File | Templates | Session types | Coverage |
|---|---|---|---|
explore.fxt.xml | 72 | 0 | 681 / 2272 frames matched (30%, control-plane only) |
sessions.fxt.xml | 76 | 4 (sba, ngap, pfcp, gtpu) | 2236 / 2272 frames matched (98%) |
All conflicts reported by the validator were "expected first-match-wins" — no errors.
please generate hosts.txt as well
Ran extract_endpoints (axis=port) and identified all unique IP:port pairs.
Used HTTP/2 :authority headers (extracted via extract_fields) to confirm 127.0.0.10 and 127.0.1.10 map to NRF (paths under /nnrf-nfm/...).
Mapped remaining IPs using Open5GS default loopback conventions:
127.0.0.4 SMF 127.0.0.13 PCF 192.168.0.111 AMF (N2 38412)
127.0.0.5 AMF 127.0.0.15 BSF 192.168.0.112 UPF/SMF (N4 8805)
127.0.0.9 HSS.PCRF 127.0.0.20 UDR 192.168.0.113 UPF/SMF (N4 8805)
127.0.0.10 NRF 127.0.0.24 NSSF 192.168.0.114 UPF/SMF (N4 8805)
127.0.0.11 AUSF 127.0.1.10 NRF.alt 192.168.0.115 UPF/SMF (N4 8805)
127.0.0.12 UDM 127.0.0.1 MongoDB 192.168.0.131 gNB (UERANSIM)
Saved as hosts.txt (tab-separated IP[:port]<TAB>Name).
Before that let us add emojis to message, parameter and host names
Audited both FXT files for opcodes/params lacking emoji prefixes. Applied edits via Edit tool with replace_all.
Type:$1 → 📄 Type: $1Location:$1 → 🔗 Location: $1MCC:$1 MNC:$2 → 🌍 MCC: $1 MNC: $2Node:$1 → 🖥️ Node: $1SEID:$1 / F-SEID:$1 → 🔑 SEID/F-SEID: $1UE-IP: $1 → 🌐 UE-IP: $1AMF-Capacity: $1 / AMBR-DL/UL → 📊 …: $1Len:$1 → 📏 Len: $1PDU-Sess:$1 → 🎬 PDU-Sess: $1SSC:$1 → 🎯 SSC: $1KSI/ABBA/FOR:$1 → 🔐 KSI/ABBA/FOR: $1UEContextReleaseCommand → 🛑 UEContextReleaseCommandUEContextReleaseComplete → ✅ UEContextReleaseCompleteGTP-U … → 🔗 GTP-U …📋 NRF 📍 AMF 🌐 SMF 🔐 AUSF/UDM 💰 PCF
💼 BSF 🗄️ UDR 🧩 NSSF 📡 gNB.RAN 🔀 UPF1-4
🏛️ HSS.PCRF 🗃️ MongoDB
Re-validated — both FXT files still valid (72 / 76 templates, 0 errors).
let us run explore first
Ran explore with the FXT and hosts file:
input: cp_0804_02.pcap
fxt_file: explore.fxt.xml
hosts_file: hosts.txt
output_dir: explore_output/
Result: 681 / 2272 frames matched. Viewer opened at:
explore_output/cp_0804_02/cp_0804_02_viewer.html
yes
Ran extract_sessions with the same hosts file.
| Session type | Outcome | Count |
|---|---|---|
| 5g-ngap-session | success::context-setup-complete | 2 |
| 5g-ngap-session | success::context-released | 1 |
| 5g-ngap-session | incomplete::no-close | 1 |
| 5g-ngap-session | incomplete::mid-capture | 1 |
| 5g-pfcp-session | success::session-deleted | 1 |
| 5g-pfcp-session | incomplete::no-close | 2 |
| 5g-sba-session | failure::tcp-reset | 6 |
| 5g-sba-session | incomplete::no-close | 28 |
Navigator opened at sessions_output/cp_0804_02/index.html.
Please analyze the 5g-sba-session sessions. Do you see any differences in the flows?
Walked the 34 SBA NDJSON files (6 failure + 28 incomplete) and aggregated message labels per session.
All 6 are TCP SYN → RST,ACK to 🏛️ HSS.PCRF on 127.0.0.9:3868 (Diameter). Different ephemeral source ports, all from 127.0.0.1, rejected within microseconds. A 4G Diameter peer is down/unconfigured and a client (likely PCF or SMF probing for legacy interworking) keeps retrying. Harmless for 5G call flow but noisy.
| # | Destination | Msgs | Flow signature |
|---|---|---|---|
| 15, 16 | MongoDB :27017 | 37, 69 | TCP only — FXT has no Mongo templates (subscriber DB reads) |
| 17, 19, 23, 25, 26 | 📋 NRF.alt | 55–104 | Pure NF self-registration — nf-instances/<UUID> PUT/PATCH heartbeats + 204 |
| 18 | 📋 NRF.alt | 61 | Subscription + nf-status-notify — NRF pushing notifications |
| 20, 21, 22, 24 | 📋 NRF.alt | 89–184 | Mixed indirect-mode — NRF-registration + AUSF/UDR/UDM service calls multiplexed (SCP-less open5gs) |
| 27 | 📍 AMF | 27 | NRF→AMF nf-status-notify (inbound) |
| 28 | 📍 AMF | 31 | AMFComm n1-n2-messages (downlink N1/N2) |
| 29 | 📋 NRF | 522 | NF management hub — 25 subscription creates, 35 nf-instance ops, all heartbeats land here |
| 30–34 | 📋 NRF | 21–33 | Discovery queries — NRFDisc v1 nf-instances → 200 OK |
| 35 | 💰 PCF | 52 | Full policy lifecycle: Create AM Policy + Create SM Policy + delete |
| 36 | 🔐 AUSF | 45 | 5G-AKA: Start UE Auth → 5g-aka-confirmation (run twice) |
| 37 | 🌐 SMF | 35 | PDU session lifecycle: Create SM Context → Modify → Release |
| 38 | 🗄️ UDR | 86 | Full subscriber-data fan-out: auth-subscription, auth-status, AMF context, AM/SM data |
| 39 | 🧩 NSSF | 29 | Anomalous — SMF-style paths land on NSSF (likely SCP routing or wrong host mapping) |
| 40 | 🔐 UDM | 21 | Lonely inbound nf-status-notify |
| 41 | 🔐 UDM | 88 | Full UDM run: Generate Auth Data + auth-events + AMF Registration + SDM am-data |
| 42 | 💼 BSF | 33 | nbsf-management/pcfBindings create + delete |
127.0.0.10 is the management hub (heartbeats, discovery), 127.0.1.10 receives per-NF registration PUTs. Same NRF, two service interfaces.imsi-001010000000000): session 36 (AKA), 41 (UDM auth+registration), 38 (UDR data), 37 (SM-context lifecycle), 35 (PCF policy), 42 (BSF binding). Together these constitute one complete 5G registration + PDU session establishment + release.127.0.0.24 is wrong or NSSF is co-located with an SMF in this open5gs config.What is the difference between successful and incomplete sessions for 5g-pfcp-session sessions?
Dumped all 3 PFCP session NDJSON files. There is 1 success and 2 incomplete.
0x1) — when a UE PDU session is createdPDU Session Resource Setup Response| Session | Pair | Msgs | Establishment | Modification | Deletion | Outcome |
|---|---|---|---|---|---|---|
success/00007 | .112 ↔ .114 | 26 | ✅ | ✅ | ✅ | success::session-deleted (52.251s) |
incomplete/00014 | .113 ↔ .115 | 29 | ✅ | ✅ | ❌ | incomplete::no-close |
incomplete/00013 | .115 ↔ .112 | 4 | ❌ | ❌ | ❌ | incomplete::no-close |
Session Deletion Request → Response (Cause: success). That single exchange is what flips the outcome to success::session-deleted.PDU Session Release reached this UPF, so no Deletion was observed.The capture has two parallel SMF↔UPF associations: (.112↔.114) and (.113↔.115). Only the first carried a PDU session through to release within the capture; the second was still active when the trace ended.
Note on host naming: Based on the Node-IDs inside the PFCP messages,.112/.113look like SMF instances and.114/.115look like UPF instances (open5gs typically deploys redundant SMF↔UPF pairs). The currenthosts.txtlabels all four as UPF — worth correcting if the diagrams will be shared.
open5gs_5gc_ueransim/
├── cp_0804_02.pcap # input
├── explore.fxt.xml # exploration template (72 templates)
├── sessions.fxt.xml # session-tracking template (76 templates, 4 session types)
├── hosts.txt # IP/port → NF-name mapping with emojis
├── explore_output/
│ └── cp_0804_02/
│ └── cp_0804_02_viewer.html # combined sequence diagram
└── sessions_output/
└── cp_0804_02/
├── index.html # session navigator
├── 5g-ngap-session/{success,incomplete}/
├── 5g-pfcp-session/{success,incomplete}/
└── 5g-sba-session/{failure,incomplete}/
imsi-001010000000000 over an Open5GS + UERANSIM testbed.hosts.txt: 127.0.0.24 (NSSF) carries SMF-style paths; 192.168.0.112-115 are likely 2× SMF + 2× UPF, not 4× UPF.