magma / grants

0 stars 3 forks source link

5G Trace Analyzer #25

Open Kaleem-Wavelabs opened 2 years ago

Kaleem-Wavelabs commented 2 years ago

Overview

Trace analyzer allows an operator to trace subscriber activity at various points in the network and at various levels of detail in 5G network. This provides a 3GPP standards-based subscriber session-level trace function for call debugging and testing new functions and access terminals in 5G environment.

Elevator Pitch

The idea is to automatically convert 5G traces (Wireshark, tcpdump) into something readable (SVG sequence diagrams) given that we needed to account for: • troubleshoot 5G issues in real network • trace the control plane messaging for a subscriber, for a specific protocol or interface • trace captures to started and stopped from the NMS, trace captures to be filtered by subscriber/protocol/interface control plane messaging • Mix of HTTP/2, 5G-NAS and PFCP protocols for 5G trace visualizer • Sequence details are quite tiring to check in the Wireshark GUI • Specific versions of Wireshark may be needed to decode specific versions of (e.g.) 5G-NAS • Mapping of IPs to container names in the deployment • Mapping of IPs to VM names in the deployment • Different coloring of the different 5G protocols (NAS, HTTP/2, PFCP, ...), as well as differentiating between requests and responses where possible

Project Details

The or8cr service ctraced can be leveraged to support for display of control flow messages in the form of SVG sequence diagrams in or8cr dashboard. ctraced supports tracing at subscriber and gateway levels with multiple filters such as interface and protocol levels, can be extended to support all NAS messages and internal messages between Magma core NFs.

Below is the design approach can be adopted to implement the same. • Imports a Packet Description Markup Language (PDML) file • Parse http_proto_protocol • Calculate the length of a packet • Call wireshark • Convert a packet to a string • Generates scatter plots for the given packets • Output a PackL file • Order participants • Convert xml root to JSON • Parse an HTTP response element

Delivery Approach

Feature will be delivered in 2 milestones. Each milestone will have the following 5 process gates

  1. Design
  2. Development & Unit Testing
  3. code review
  4. Integration testing
  5. resolve integration issues and regression issues Before finishing the 2nd milestone, the feature shall pass the following process gates
  6. System test
  7. User Acceptance test

Milestone-1

Decoding of specific version of 5G-NAS.

Milestone-2

Implementing and integrating plotting Scripts to plot different metrics and data mainly using python packages.

Test Plan

Following is the set of tests or scenarios to verify dual stack Support.

Integration Testing using UERANSIM or equivalent simulator

  1. Testing of all 5G-NAS messages and its details using the trace analyzer
  2. Verifying all the 5G-NAS sequence flows between different magma NEs

Feature Roadmap

Feature will be delivered in 2 Milestones.

MS | FUNCTIONAL AREA | DELIVERABLES | -- | -- | -- | M1.0 | 5G-NAS messages | Decoding of specific version of 5G-NAS | M2.0 | Plotting Scripts. SIT & UAT | Different metrics. Feature is passing all the tests in Real equipment environment. Feature user / customer runs the conformance tests and accepts the feature. |

References

1) https://dl.cdn-anritsu.com/en-us/test-measurement/files/Brochures-Datasheets-Catalogs/datasheet/MX848086A.pdf 2) https://github.com/telekom/5g-trace-visualizer#summary 3) https://github.com/SadeghKrmi/5G-Trace-Analyzer