From 525ab11b14b18472414e355ffd2cd2199c5ed65a Mon Sep 17 00:00:00 2001 From: Benjamin Grewell Date: Wed, 9 Sep 2026 23:10:58 +0000 Subject: [PATCH 1/5] Quote leading-zero PLMN values in 5G examples PR #92 updated the PLMN examples in the docs to 001/01 but left the new leading-zero values unquoted in the code-block snippets. As displayed, plmnId: 00101 parses as octal 65, and mcc: 001 / mnc: 01 both collapse to 1, so a reader copying these examples into their own values file silently provisions the wrong PLMN. This affects the rendered examples only. The actual override files in aether-onramp already quote these correctly (sdcore-5g-values.yaml, gnbsim-default.yaml); the docs are being brought in line with them. Addresses the review feedback left on #92. Signed-off-by: Benjamin Grewell --- onramp/start.rst | 6 +++--- operations/subscriber.rst | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/onramp/start.rst b/onramp/start.rst index 22674fa..982e367 100644 --- a/onramp/start.rst +++ b/onramp/start.rst @@ -512,13 +512,13 @@ block defines a set of parameters for ``pdusessest`` (also known as enable: true gnbName: gnb1 execInParallel: false - startImsi: 001010100007487 + startImsi: "001010100007487" ueCount: 5 defaultAs: "{{ ping_target }}" perUserTimeout: 100 plmnId: - mcc: 001 - mnc: 01 + mcc: "001" + mnc: "01" dataPktCount: 5 opc: "981d464c7c52eb6e5036234984ad0bcf" key: "5122250214c33e723a5dd523fc145fc0" diff --git a/operations/subscriber.rst b/operations/subscriber.rst index e61a8f0..a8b52c9 100644 --- a/operations/subscriber.rst +++ b/operations/subscriber.rst @@ -48,13 +48,13 @@ include the new Device IMSIs: subscribers: - ueId-start: 123456789123458 ueId-end: 123456789123458 - plmnId: 00101 + plmnId: "00101" opc: 8e27b6af0e692e750f32667a3b14605d key: 8baf473f2f8fd09487cccbd7097c6862 sequenceNumber: 16f3b3f70fc2 - ueId-start: 123456789123460 ueId-end: 123456789123465 - plmnId: 00101 + plmnId: "00101" opc: 8e27b6af0e692e750f32667a3b14605d key: 8baf473f2f8fd09487cccbd7097c6862 sequenceNumber: 16f3b3f70fc2 From 0f3ac672b8e15eb466f7807b62b5ae534930cba0 Mon Sep 17 00:00:00 2001 From: Benjamin Grewell Date: Wed, 9 Sep 2026 23:11:34 +0000 Subject: [PATCH 2/5] Update stale gNBsim startImsi to match provisioned range The profile2 example still showed startImsi 001010100007487. That value was retired upstream by aether-onramp#219 ("Align IMSI floor (ueID-start) to 7500"), which was never reflected here, so it predates #92 -- that PR only swapped the 20893 prefix onto an already-stale suffix. 001010100007487 falls outside both provisioned subscriber ranges (7500-7509 and 7510-7599) in sdcore-5g-values.yaml, so the example as printed would fail authentication if used as-is. Update it to 001010100007510, matching profile2 in gnbsim-default.yaml. Signed-off-by: Benjamin Grewell --- onramp/start.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/onramp/start.rst b/onramp/start.rst index 982e367..6659f27 100644 --- a/onramp/start.rst +++ b/onramp/start.rst @@ -512,7 +512,7 @@ block defines a set of parameters for ``pdusessest`` (also known as enable: true gnbName: gnb1 execInParallel: false - startImsi: "001010100007487" + startImsi: "001010100007510" ueCount: 5 defaultAs: "{{ ping_target }}" perUserTimeout: 100 From 18269751d298b6e3efdb11da4de6f9232d6f53e4 Mon Sep 17 00:00:00 2001 From: Benjamin Grewell Date: Wed, 9 Sep 2026 23:17:23 +0000 Subject: [PATCH 3/5] Fix YAML examples that fail to parse when copied Several example blocks could not be pasted into a values file as-is: - onramp/start.rst: the profile2 mapping keys were not nested under the list item, so the block raised a ScannerError. Also restores dnn and sNssai, which are part of profile2 in gnbsim-default.yaml but were omitted here without an elision marker. - onramp/gnb.rst: the device-groups block mis-indented imsis under the list item, raising a ParserError. - onramp/{gnbsim,network,blueprints}.rst: literal tabs before inline comments. YAML forbids tabs, so these blocks failed to parse. The corresponding files in aether-onramp use spaces. Comment columns are preserved. No values are changed. Signed-off-by: Benjamin Grewell --- onramp/blueprints.rst | 18 +++++++++--------- onramp/gnb.rst | 10 +++++----- onramp/gnbsim.rst | 14 +++++++------- onramp/network.rst | 12 ++++++------ onramp/start.rst | 34 +++++++++++++++++++--------------- 5 files changed, 46 insertions(+), 42 deletions(-) diff --git a/onramp/blueprints.rst b/onramp/blueprints.rst index f5716be..e635b90 100644 --- a/onramp/blueprints.rst +++ b/onramp/blueprints.rst @@ -111,8 +111,8 @@ of ``vars/main.yml``: .. code-block:: upf: - access_subnet: "192.168.252.1/24" # access subnet & gateway - core_subnet: "192.168.250.1/24" # core subnet & gateway + access_subnet: "192.168.252.1/24" # access subnet & gateway + core_subnet: "192.168.250.1/24" # core subnet & gateway helm: chart_ref: aether/bess-upf values_file: "deps/5gc/roles/upf/templates/upf-5g-values.yaml" @@ -490,9 +490,9 @@ section: .. code-block:: upf: - access_subnet: "192.168.252.1/24" # access subnet & gateway - core_subnet: "192.168.250.1/24" # core subnet & gateway - mode: dpdk # Options: af_packet or dpdk + access_subnet: "192.168.252.1/24" # access subnet & gateway + core_subnet: "192.168.250.1/24" # core subnet & gateway + mode: dpdk # Options: af_packet or dpdk # If mode set to 'dpdk': # - make sure at least two VF devices are created out of 'data_iface' # and these devices are attached to vfio-pci driver. @@ -1147,12 +1147,12 @@ on subnet 10.202.1.0/24. Configure the parameters as follows: data_iface: ens18 ran_subnet: "10.202.1.0/24" upf: - access_subnet: "10.21.61.1/24" # access subnet & gateway - core_subnet: "192.168.250.1/24" # core subnet & gateway - multihop_gnb: true # N3 directly reachable via data_iface + access_subnet: "10.21.61.1/24" # access subnet & gateway + core_subnet: "192.168.250.1/24" # core subnet & gateway + multihop_gnb: true # N3 directly reachable via data_iface default_upf: ip: - access: "10.21.61.12" # same subnet as data_iface when multihop_gnb=true + access: "10.21.61.12" # same subnet as data_iface when multihop_gnb=true core: "192.168.250.3" ue_ip_pool: "192.168.100.0/24" diff --git a/onramp/gnb.rst b/onramp/gnb.rst index cdc59ce..cb595d8 100644 --- a/onramp/gnb.rst +++ b/onramp/gnb.rst @@ -176,11 +176,11 @@ be part of the device-group: .. code-block:: device-groups: - - name: "5g-user-group1" - imsis: - - "315010999912301" - - "315010999912302" - - "315010999912303" + - name: "5g-user-group1" + imsis: + - "315010999912301" + - "315010999912302" + - "315010999912303" The second block, ``network-slices``, sets various parameters associated with the *Slices* that connect device groups to diff --git a/onramp/gnbsim.rst b/onramp/gnbsim.rst index 9ba567e..b3e404f 100644 --- a/onramp/gnbsim.rst +++ b/onramp/gnbsim.rst @@ -74,13 +74,13 @@ file. gNBsim supports seven profiles, which we list here: .. code-block:: - - profileType: register # UE Registration - - profileType: pdusessest # UE Initiated Session - - profileType: anrelease # Access Network (AN) Release - - profileType: uetriggservicereq # UE Initiated Service Request - - profileType: deregister # UE Initiated De-registration - - profileType: nwtriggeruedereg # Network Initiated De-registration - - profileType: uereqpdusessrelease # UE Initiated Session Release + - profileType: register # UE Registration + - profileType: pdusessest # UE Initiated Session + - profileType: anrelease # Access Network (AN) Release + - profileType: uetriggservicereq # UE Initiated Service Request + - profileType: deregister # UE Initiated De-registration + - profileType: nwtriggeruedereg # Network Initiated De-registration + - profileType: uereqpdusessrelease # UE Initiated Session Release The second profile (``pdusettest``) is selected by default. It causes the specified number of UEs to register with the Core, initiate a user diff --git a/onramp/network.rst b/onramp/network.rst index acfa68e..1df1615 100644 --- a/onramp/network.rst +++ b/onramp/network.rst @@ -214,18 +214,18 @@ sections, but for a summary, see the :doc:`Quick Reference `. .. code-block:: core: - standalone: true # set to false to manage device groups/slices manually via the SD-Core webui + standalone: true # set to false to manage device groups/slices manually via the SD-Core webui data_iface: ens18 values_file: "deps/5gc/roles/core/templates/sdcore-5g-values.yaml" - ran_subnet: "172.20.0.0/16" # set to empty string to get subnet from 'data_iface' + ran_subnet: "172.20.0.0/16" # set to empty string to get subnet from 'data_iface' helm: - local_charts: false # set chart_ref to local path name if true + local_charts: false # set chart_ref to local path name if true chart_ref: oci://ghcr.io/omec-project/sd-core chart_version: 3.3.0 upf: - access_subnet: "192.168.252.1/24" # access subnet & gateway - core_subnet: "192.168.250.1/24" # core subnet & gateway - mode: af_packet # Options: af_packet or dpdk + access_subnet: "192.168.252.1/24" # access subnet & gateway + core_subnet: "192.168.250.1/24" # core subnet & gateway + mode: af_packet # Options: af_packet or dpdk default_upf: ip: access: "192.168.252.3" diff --git a/onramp/start.rst b/onramp/start.rst index 6659f27..e911382 100644 --- a/onramp/start.rst +++ b/onramp/start.rst @@ -508,21 +508,25 @@ block defines a set of parameters for ``pdusessest`` (also known as .. code-block:: - profileType: pdusessest # UE Initiated Session - profileName: profile2 - enable: true - gnbName: gnb1 - execInParallel: false - startImsi: "001010100007510" - ueCount: 5 - defaultAs: "{{ ping_target }}" - perUserTimeout: 100 - plmnId: - mcc: "001" - mnc: "01" - dataPktCount: 5 - opc: "981d464c7c52eb6e5036234984ad0bcf" - key: "5122250214c33e723a5dd523fc145fc0" - sequenceNumber: "16f3b3f70fc2" + profileName: profile2 + enable: true + gnbName: gnb1 + execInParallel: false + startImsi: "001010100007510" + ueCount: 5 + defaultAs: "{{ ping_target }}" + perUserTimeout: 100 + plmnId: + mcc: "001" + mnc: "01" + dnn: "internet" + sNssai: + sst: 1 + sd: "010203" + dataPktCount: 5 + opc: "981d464c7c52eb6e5036234984ad0bcf" + key: "5122250214c33e723a5dd523fc145fc0" + sequenceNumber: "16f3b3f70fc2" You can edit ``ueCount`` to change the number of UEs included in the emulation (currently limited to 100) and you can set From 3c37f3ec1a3159b697fa3fca710834026d393933 Mon Sep 17 00:00:00 2001 From: Benjamin Grewell Date: Wed, 9 Sep 2026 23:17:30 +0000 Subject: [PATCH 4/5] Correct gNBsim profile count and typos gnbsim-default.yaml defines eight profileTypes; the list here named seven and omitted nwreqpdusessrelease. Also fixes two typos in the surrounding prose: pdusettest -> pdusessest, and PLMD -> PLMN. Signed-off-by: Benjamin Grewell --- onramp/gnbsim.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/onramp/gnbsim.rst b/onramp/gnbsim.rst index b3e404f..6c7d671 100644 --- a/onramp/gnbsim.rst +++ b/onramp/gnbsim.rst @@ -70,7 +70,7 @@ this guide (see https://github.com/omec-project/gnbsim for details), but at a high-level, gNBsim defines a set of *profiles*, each of which exercises a common usage scenario that the Core has to deal with. Each of these sequences is represented by a ``profileType`` in the config -file. gNBsim supports seven profiles, which we list here: +file. gNBsim supports eight profiles, which we list here: .. code-block:: @@ -81,12 +81,13 @@ file. gNBsim supports seven profiles, which we list here: - profileType: deregister # UE Initiated De-registration - profileType: nwtriggeruedereg # Network Initiated De-registration - profileType: uereqpdusessrelease # UE Initiated Session Release + - profileType: nwreqpdusessrelease # Network Initiated Session Release -The second profile (``pdusettest``) is selected by default. It causes +The second profile (``pdusessest``) is selected by default. It causes the specified number of UEs to register with the Core, initiate a user plane session, and then send a minimal data packet over that session. Note that the rest of the per-profile parameters are highly redundant. -For example, they specify the IMSI- and PLMD-related information UEs +For example, they specify the IMSI- and PLMN-related information UEs need to connect to the Core. Finally, it is necessary to edit the ``core`` section of From de2ad110f9e6998045215d870431fdaed720e26d Mon Sep 17 00:00:00 2001 From: Benjamin Grewell Date: Wed, 9 Sep 2026 23:32:56 +0000 Subject: [PATCH 5/5] Use upstream indentation style for the imsis list Indent the imsis sequence under its key, matching device-groups in sdcore-5g-values.yaml. Both forms parse identically -- a block sequence may sit at the same indentation as its parent mapping key -- but this keeps the example consistent with the file it is documenting. Signed-off-by: Benjamin Grewell --- onramp/gnb.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/onramp/gnb.rst b/onramp/gnb.rst index cb595d8..94c129e 100644 --- a/onramp/gnb.rst +++ b/onramp/gnb.rst @@ -178,9 +178,9 @@ be part of the device-group: device-groups: - name: "5g-user-group1" imsis: - - "315010999912301" - - "315010999912302" - - "315010999912303" + - "315010999912301" + - "315010999912302" + - "315010999912303" The second block, ``network-slices``, sets various parameters associated with the *Slices* that connect device groups to