Skip to content

MBSF Feature: Packet mode#37

Open
davidjwbbc wants to merge 4 commits into
5G-MAG:developmentfrom
davidjwbbc:feature/packet-mode
Open

MBSF Feature: Packet mode#37
davidjwbbc wants to merge 4 commits into
5G-MAG:developmentfrom
davidjwbbc:feature/packet-mode

Conversation

@davidjwbbc

@davidjwbbc davidjwbbc commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

This accompanies 5G-MAG/rt-mbs-transport-function#64 and is the MBSF changes to support the PACKET distribution method.

This also includes the fix from rt-mbs-transport-function for incorrectly applied Read-Only and Write-Only property attributes in the generated model code for the MbStfIngestAddr type to ensure consistent interpretation of data types between the MBSF and MBSTF.

@davidjwbbc davidjwbbc added this to the v1.1.0 milestone Jun 24, 2026
@davidjwbbc davidjwbbc self-assigned this Jun 24, 2026
@davidjwbbc davidjwbbc added the enhancement New feature or request label Jun 24, 2026
@davidjwbbc davidjwbbc moved this to Ready for review in 5MBS: User Services initial release Jun 24, 2026
@davidjwbbc davidjwbbc force-pushed the feature/packet-mode branch from 9a8a25b to 09760fa Compare June 24, 2026 10:20
@davidjwbbc

davidjwbbc commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator Author

I've tested this using the rt-mbs-transport-function/tests/packet_stream_gen.py script and Insomnia.

For the Insomnia entry I duplicated an Object mode User Data Ingest Session creation entry and changed the body to:

{
  "mbsUserServId": "{{ _.mbs_user_service_id }}",
  "mbsDisSessInfos": {
    "AP_MBS_SESSION_1": {
      "mbsSessionId": {
        "ssm": {
          "sourceIpAddr": {
            "ipv4Addr": "127.0.0.5"
          },
          "destIpAddr": {
            "ipv4Addr": "232.10.0.7"
          }
        }
      },
      "mbsDistSessState": "ACTIVE",
      "maxContBitRate": "10 Mbps",
      "distrMethod": "PACKET",
      "pckDistrInfo": {
        "operatingMode": "PACKET_FORWARD_ONLY",
        "pckIngMethod": "UNICAST",
        "ingEndpointAddrs": {
          "afEgressTunAddr": {
            "ipv4Addr": "127.0.0.1",
            "portNumber": 3000
          }
        }
      }
    }
  },
  "suppFeat": "3"
}

I then ran the packet_stream_gen.py script to generate the stream and caught the packets using wireshark:

~/rt-mbs-transport-function/tests/packet_stream_gen.py 127.0.0.1:3000 127.0.0.1:35371 232.10.0.7:5555 127.0.0.5:6666

Note: Address 127.0.0.1:35371 came from the mbStfIngressTunAddr value in the response to Insomnia from the MBSF.

The packets sent using the script look like:
Packet from (fake) AP to MBSTF

These packet go from the address specified in the afEgressTunAddr property in the original request and go to the address given by the mbStfIngessAddr property from the creation request response. These packets contain encapsulated multicast packets using the source and destination addresses from the MBS session ID SSM in the original creation request and uses source port 6666 and destination port 5555.

This is then forwarded from the MBSTF to the MB-UPF UDP tunnel (as requested by the MBSF when creating the MBS Session with the MB-SMF):
Packet from MBSTF to MB-UPF

This is sent from an ephemeral port on the MBSTF to the MB-UPF UDP tunnel that has been created for the MBS Session. The packet contains the encapsulated packet as sent by the generator script to the MBSTF.

The MB-UPF then passes the encapsulated packet to the gNodeB via the GTP-U protocol for transmission to any subscribed UE's:
MB-UPF to gNodeB

@rjb1000 rjb1000 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @davidjwbbc.

Updates to copyright years are needed in some source files.

Comment thread src/mbsf/AssociatedSessId.cc Outdated
Comment thread src/mbsf/DistributionSessionInfo.cc Outdated
Comment thread src/mbsf/generator-mbsf Outdated
Comment thread src/mbsf/Nmb2Build.cc Outdated
Comment thread src/mbsf/Nmb2Handler.cc Outdated
Comment thread src/mbsf/UniqueMBSSessionId.cc Outdated
Comment thread src/mbsf/UserDataIngSession.cc Outdated
Comment thread src/mbsf/UserDataIngSession.hh Outdated
Comment thread meson.build Outdated
@davidjwbbc davidjwbbc requested a review from rjb1000 June 24, 2026 15:09
@dsilhavy

Copy link
Copy Markdown
Contributor

Thanks @davidjwbbc I fidnt find any issues when reviewing the code. On our end we will try to replicate your setup now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Ready for review

Development

Successfully merging this pull request may close these issues.

3 participants