Skip to content

WIP: WebAssembly Custom Scenario

Valentin edited this page Nov 30, 2023 · 1 revision

Custom scenarios built in WebAssembly

PacketRusher is experimenting the integration of WebAssembly for the creation of custom testing scenarios using UE/gNodeB NAS and NGAP procedures implemented inside PacketRusher.

Why WebAssembly ?

We integrated a WebAssembly Runtime into PacketRusher to provide a seamless scripting environment for test scenario development. WebAssembly is a portable binary format that allows running code written in multiple languages on various platforms. By leveraging WebAssembly, testers can write testing scenarios in the language they are most familiar with, without requiring any prior knowledge of Private 5G-specific procedures or protocols.

To facilitate test scenario creation, we embedded 5G procedures within the tool hiding the domain knowledge. These procedures cover critical aspects of Private 5G networks, such as the simulation of User Equipment and gNodeB entities, and the usage of related operations, including device registration and authentication, packet data session establishment, and device handover between gNodeBs. By exposing these procedures through WebAssembly, we enable power testers to invoke them seamlessly within their test scenarios without having to understand the underlying intricacies of Private 5G’s protocols such as eg. NGAP and NAS-5GS

WIP Architecture

image

How to use?

WARNING: This is an highly unstable feature, but if you want to try it, you may:

  • Check out the sample scenario
  • Built it with TinyGo as mentioned here
  • And run the custom scenario compiled to .wasm using ./app custom-scenario --scenario sample.go.wasm

Want to contribute to this feature?

Interested in contributing to this feature?

You may find more details here and in the code itself here! Feel free to open an issue if you are interested in the idea.