Merge remote-tracking branch 'origin/add-support-eth-pdu-sess' into integration_2026_w05 (!3769)
Add Ethernet PDU session support and make PDU session request configurable
This MR adds support for Ethernet PDU sessions, and makes PDU sessions
configurable: per-PDU session ID, type (IPv4/IPv4v6/IPv6/Ethernet [1]),
DNN, NSSAI.
Concretely, it adds a new configuration file section pdu_sessions below
uicc0 that looks like this if everything is specified (default values
are shown):
uicc0:
[...]
pdu_sessions:
- id: 1
type: "IPv4"
nssai_sst: 1
nssai_sd: 0xffffff
dnn: "oai"
It is possible to list multiple PDU sessions (add new line - id: 2 to
request a second PDU session). It is backwards-compatible to the current
PDU session configuration (uicc0.dnn/nssai_sst/etc), the idea being that
either legacy or new configuration could be used, but (1) if
pdu_sessions exist, it will overwrite the legacy configuration, and (2)
multiple PDU sessions, and type, can only be configured using the new
config. The old parameters --extra-pdu-id and --default-pdu-id are not
accepted anymore. Documentation has been added to the UE tutorial.
It is possible to test an Ethernet PDU session [1]. It is possible to
test the PDU session inside the UE by verifying it has an TAP interface
oaitap_ue1, and ARPing the data network (arping has been added to
oai-nr-ue container for that purpose):
ip addr add 192.168.72.140/26 dev oaitap_ue1 # same subnet as data network!
ip link set dev oaitap_ue1 up
arping -c 20 -I oaitap_ue1 192.168.72.135 # will send ARP request in Ethernet frame to get IP address of data network
[1] See description MR !3769 for more information. On the UE side, only
the type has to be changed to "Ethernet".
This commit is contained in:
+2
-2
@@ -866,8 +866,8 @@ INPUT = \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/config/config_cmdline.c \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/time_meas.c \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/time_meas.h \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/tun_if.h \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/tun_if.c \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/tuntap_if.h \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/tuntap_if.c \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/utils.c \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/oai_asn1.h \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/system.h \
|
||||
|
||||
@@ -173,8 +173,7 @@ uicc0 = {
|
||||
imsi = "001010000000001";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc = "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn = "oai";
|
||||
nssai_sst = 1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
```
|
||||
|
||||
@@ -183,8 +182,23 @@ uicc0 = {
|
||||
| **IMSI** | Unique identifier for the UE within the mobile network. Used by the network to identify the UE during authentication. It ensures that the UE is correctly identified by the network. | 001010000000001 |
|
||||
| **key** | Cryptographic key shared between the UE and the network, used for encryption during the authentication process. | `fec86ba6eb707ed08905757b1bb44b8f` |
|
||||
| **OPC** | Operator key for the Milenage Authentication and Key Agreement algorithm used for encryption during the authentication process. | Ensures secure communication between the UE and the network by matching the encryption keys. | `C42449363BBAD02B66D16BC975D77CC1` |
|
||||
| **DNN** | Specifies the name of the data network the UE wishes to connect to, similar to an APN in 4G networks. | `oai` |
|
||||
| **NSSAI** | Allows the UE to select the appropriate network slice, which provides different QoS. | `1` |
|
||||
| **DNN** | _Deprecated_: Specifies the name of the data network the UE wishes to connect to, similar to an APN in 4G networks. | `oai` |
|
||||
| **NSSAI** | _Deprecated_: Allows the UE to select the appropriate network slice, which provides different QoS. | `1` |
|
||||
| **pdu_sessions** | list of PDU sessions to request | empty array (no PDU session) |
|
||||
|
||||
Note that DNN and NSSAI parameters are deprecated, and `pdu_sessions` should be
|
||||
used. If the `pdu_sessions` array is present, DNN and NSSAI are ignored.
|
||||
|
||||
Each element within the `pdu_sessions` array takes the following parameters.
|
||||
Multiple PDU sessions can be requested.
|
||||
|
||||
| **Parameter** | **Description** | **Default Value** |
|
||||
|---------------|-----------------|-------------------|
|
||||
| `id` | ID of the PDU session to request | index of the current element (1..16) |
|
||||
| `type` | Type of the PDU session to request (allowed: `IPv4`, `IPv6`, `IPv4v6`, `Ethernet` | `IPv4` |
|
||||
| `dnn` | Specifies the name of the data network the UE wishes to connect to | `oai` |
|
||||
| `nssai_sst` | Slice Service Type to request (1=eMBB, 2=URLLC, 3=mMTC) | `1` |
|
||||
| `nssai_sd` | Slice Differentiator to request | `0xffffff` (meaning "no SD") |
|
||||
|
||||
The UE configuration must match the one of the network's AMF. The nrUE can connect by default to OAI CN5G with no need to provide the configuration file.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user