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".
69 lines
1.5 KiB
Plaintext
69 lines
1.5 KiB
Plaintext
uicc0 = {
|
|
imsi = "208990100001100";
|
|
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
|
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
|
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
|
}
|
|
|
|
position0 = {
|
|
x = 0.0;
|
|
y = 0.0;
|
|
z = 6377900.0;
|
|
}
|
|
|
|
thread-pool = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
|
|
|
rfsimulator = (
|
|
{
|
|
prop_delay = 20;
|
|
options = ("chanmod");
|
|
}
|
|
);
|
|
|
|
RUs = (
|
|
{
|
|
nb_tx = 1;
|
|
nb_rx = 1;
|
|
att_tx = 0;
|
|
att_rx = 0;
|
|
max_rxgain = 114;
|
|
sdr_addrs = "type=x300";
|
|
clock_src = "internal";
|
|
time_src = "internal";
|
|
# if_freq = 3700000000L;
|
|
# if_offset = 1000000;
|
|
}
|
|
);
|
|
|
|
cells = (
|
|
{
|
|
ru_id = 0;
|
|
band = 254;
|
|
rf_freq = 2488400000L;
|
|
rf_offset = -873500000L;
|
|
numerology = 0;
|
|
N_RB_DL = 25;
|
|
ssb_start = 60;
|
|
}
|
|
);
|
|
|
|
#/* configuration for channel modelisation */
|
|
#/* To be included in main config file when */
|
|
#/* channel modelisation is used (rfsimulator with chanmod options enabled) */
|
|
channelmod = {
|
|
max_chan = 10;
|
|
modellist = "modellist_rfsimu_1";
|
|
modellist_rfsimu_1 = (
|
|
{ # DL, modify on UE side
|
|
model_name = "rfsimu_channel_enB0"
|
|
type = "SAT_LEO_TRANS";
|
|
noise_power_dB = -100;
|
|
},
|
|
{ # UL, modify on gNB side
|
|
model_name = "rfsimu_channel_ue0"
|
|
type = "SAT_LEO_TRANS";
|
|
noise_power_dB = -100;
|
|
}
|
|
);
|
|
};
|