Commit 0a607584 authored by Robert Schmidt's avatar Robert Schmidt

Merge remote-tracking branch 'origin/fix-sst-sd' into integration_2022_wk36b

parents 3ac2c5e6 8eaceae0
...@@ -11,22 +11,7 @@ gNBs = ...@@ -11,22 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 40960; tracking_area_code = 40960;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 95; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 95;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,22 +11,7 @@ gNBs = ...@@ -11,22 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -15,22 +15,7 @@ gNBs = ...@@ -15,22 +15,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -14,22 +14,7 @@ gNBs = ...@@ -14,22 +14,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -15,21 +15,7 @@ gNBs = ...@@ -15,21 +15,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L nr_cellid = 12345678L
......
...@@ -16,21 +16,7 @@ gNBs = ...@@ -16,21 +16,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L nr_cellid = 12345678L
......
...@@ -15,25 +15,7 @@ gNBs = ...@@ -15,25 +15,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 97;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L nr_cellid = 12345678L
......
...@@ -15,21 +15,7 @@ gNBs = ...@@ -15,21 +15,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 97;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L nr_cellid = 12345678L
......
...@@ -15,21 +15,7 @@ gNBs = ...@@ -15,21 +15,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 97;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L nr_cellid = 12345678L
......
...@@ -15,21 +15,7 @@ gNBs = ...@@ -15,21 +15,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 97;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L nr_cellid = 12345678L
......
...@@ -15,21 +15,7 @@ gNBs = ...@@ -15,21 +15,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 97;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L nr_cellid = 12345678L
......
...@@ -11,22 +11,7 @@ gNBs = ...@@ -11,22 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 95; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 95;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 2;
sd = 2; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,18 +11,7 @@ gNBs = ...@@ -11,18 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 222; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; }) });
mcc = 222;
mnc = 01;
mnc_length = 2;
snssaiList = (
{
sst = 1;
#sd = 0x1; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,22 +11,7 @@ gNBs = ...@@ -11,22 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -4,5 +4,4 @@ uicc0 = { ...@@ -4,5 +4,4 @@ uicc0 = {
opc= "@OPC@"; opc= "@OPC@";
dnn= "@DNN@"; dnn= "@DNN@";
nssai_sst=@NSSAI_SST@; nssai_sst=@NSSAI_SST@;
nssai_sd=@NSSAI_SD@;
} }
...@@ -2,7 +2,7 @@ version: '3.8' ...@@ -2,7 +2,7 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:latest image: oai-nrf:august-dev
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - NRF_INTERFACE_PORT_FOR_SBI=80
...@@ -42,7 +42,7 @@ services: ...@@ -42,7 +42,7 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:latest image: oai-amf:august-dev
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0 - INSTANCE=0
...@@ -63,9 +63,9 @@ services: ...@@ -63,9 +63,9 @@ services:
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
- SST_0=1 - SST_0=1
- SD_0=1 - SD_0=0xffffff
- SST_1=1 - SST_1=1
- SD_1=12 - SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
...@@ -110,7 +110,7 @@ services: ...@@ -110,7 +110,7 @@ services:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:latest image: oai-smf:august-dev
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0 - INSTANCE=0
...@@ -140,6 +140,12 @@ services: ...@@ -140,6 +140,12 @@ services:
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DNN_NI2=oai.ipv4
depends_on: depends_on:
- oai-nrf - oai-nrf
...@@ -156,7 +162,7 @@ services: ...@@ -156,7 +162,7 @@ services:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:latest image: oai-spgwu-tiny:august-dev
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run - PID_DIRECTORY=/var/run
...@@ -183,7 +189,7 @@ services: ...@@ -183,7 +189,7 @@ services:
- NRF_API_VERSION=v1 - NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=1 - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
depends_on: depends_on:
- oai-nrf - oai-nrf
...@@ -237,8 +243,6 @@ services: ...@@ -237,8 +243,6 @@ services:
MNC: '99' MNC: '99'
MNC_LENGTH: 2 MNC_LENGTH: 2
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD0: 1
NSSAI_SD1: 112233
AMF_IP_ADDRESS: 192.168.71.132 AMF_IP_ADDRESS: 192.168.71.132
GNB_NGA_IF_NAME: eth0 GNB_NGA_IF_NAME: eth0
GNB_NGA_IP_ADDRESS: 192.168.71.140 GNB_NGA_IP_ADDRESS: 192.168.71.140
...@@ -273,8 +277,6 @@ services: ...@@ -273,8 +277,6 @@ services:
MNC: '99' MNC: '99'
MNC_LENGTH: 2 MNC_LENGTH: 2
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD0: 1
NSSAI_SD1: 112233
AMF_IP_ADDRESS: 192.168.71.132 AMF_IP_ADDRESS: 192.168.71.132
GNB_NGA_IF_NAME: eth0 GNB_NGA_IF_NAME: eth0
GNB_NGA_IP_ADDRESS: 192.168.71.142 GNB_NGA_IP_ADDRESS: 192.168.71.142
...@@ -307,7 +309,6 @@ services: ...@@ -307,7 +309,6 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1' OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai DNN: oai
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD: 1
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
depends_on: depends_on:
- oai-du - oai-du
......
...@@ -2,7 +2,7 @@ version: '3.8' ...@@ -2,7 +2,7 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:latest image: oai-nrf:august-dev
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - NRF_INTERFACE_PORT_FOR_SBI=80
...@@ -42,7 +42,7 @@ services: ...@@ -42,7 +42,7 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:latest image: oai-amf:august-dev
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0 - INSTANCE=0
...@@ -63,9 +63,9 @@ services: ...@@ -63,9 +63,9 @@ services:
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
- SST_0=1 - SST_0=1
- SD_0=1 - SD_0=0xffffff
- SST_1=1 - SST_1=1
- SD_1=12 - SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
...@@ -110,7 +110,7 @@ services: ...@@ -110,7 +110,7 @@ services:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:latest image: oai-smf:august-dev
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0 - INSTANCE=0
...@@ -140,6 +140,12 @@ services: ...@@ -140,6 +140,12 @@ services:
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DNN_NI2=oai.ipv4
depends_on: depends_on:
- oai-nrf - oai-nrf
...@@ -156,7 +162,7 @@ services: ...@@ -156,7 +162,7 @@ services:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:latest image: oai-spgwu-tiny:august-dev
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run - PID_DIRECTORY=/var/run
...@@ -183,7 +189,7 @@ services: ...@@ -183,7 +189,7 @@ services:
- NRF_API_VERSION=v1 - NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=1 - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
depends_on: depends_on:
- oai-nrf - oai-nrf
...@@ -237,8 +243,6 @@ services: ...@@ -237,8 +243,6 @@ services:
MNC: '99' MNC: '99'
MNC_LENGTH: 2 MNC_LENGTH: 2
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD0: 1
NSSAI_SD1: 112233
AMF_IP_ADDRESS: 192.168.71.132 AMF_IP_ADDRESS: 192.168.71.132
GNB_NGA_IF_NAME: eth0 GNB_NGA_IF_NAME: eth0
GNB_NGA_IP_ADDRESS: 192.168.71.140 GNB_NGA_IP_ADDRESS: 192.168.71.140
...@@ -266,7 +270,6 @@ services: ...@@ -266,7 +270,6 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1' OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai DNN: oai
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD: 1
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 --band 66 -C 2169080000 --CO -400000000 -s 396 --nokrnmod --log_config.global_log_options level,nocolor,time USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 --band 66 -C 2169080000 --CO -400000000 -s 396 --nokrnmod --log_config.global_log_options level,nocolor,time
depends_on: depends_on:
- oai-gnb - oai-gnb
......
...@@ -63,9 +63,9 @@ services: ...@@ -63,9 +63,9 @@ services:
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
- SST_0=1 - SST_0=1
- SD_0=1 - SD_0=0xffffff
- SST_1=1 - SST_1=1
- SD_1=12 - SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
...@@ -140,6 +140,12 @@ services: ...@@ -140,6 +140,12 @@ services:
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DNN_NI2=oai.ipv4
depends_on: depends_on:
- oai-nrf - oai-nrf
...@@ -183,7 +189,7 @@ services: ...@@ -183,7 +189,7 @@ services:
- NRF_API_VERSION=v1 - NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=1 - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
depends_on: depends_on:
- oai-nrf - oai-nrf
...@@ -237,8 +243,6 @@ services: ...@@ -237,8 +243,6 @@ services:
MNC: '99' MNC: '99'
MNC_LENGTH: 2 MNC_LENGTH: 2
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD0: 1
NSSAI_SD1: 112233
AMF_IP_ADDRESS: 192.168.71.132 AMF_IP_ADDRESS: 192.168.71.132
GNB_NGA_IF_NAME: eno1 GNB_NGA_IF_NAME: eno1
GNB_NGA_IP_ADDRESS: 172.21.16.128 GNB_NGA_IP_ADDRESS: 172.21.16.128
...@@ -287,7 +291,7 @@ services: ...@@ -287,7 +291,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1' OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai DNN: oai
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD: 1 NSSAI_SD: 0xffffff
NR_UE_NFAPI_IF_NAME: eno1 NR_UE_NFAPI_IF_NAME: eno1
GNB_IP_ADDRESS: 127.0.0.1 GNB_IP_ADDRESS: 127.0.0.1
NR_UE_IP_ADDRESS: 127.0.0.1 NR_UE_IP_ADDRESS: 127.0.0.1
......
...@@ -274,7 +274,6 @@ Create entry for Second UE in docker-compose.yaml file as follows: ...@@ -274,7 +274,6 @@ Create entry for Second UE in docker-compose.yaml file as follows:
OPC: 'C42449363BBAD02B66D16BC975D77CC1' OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai DNN: oai
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD: 1
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
depends_on: depends_on:
- oai-gnb - oai-gnb
......
...@@ -63,9 +63,9 @@ services: ...@@ -63,9 +63,9 @@ services:
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
- SST_0=1 - SST_0=1
- SD_0=1 - SD_0=0xffffff
- SST_1=1 - SST_1=1
- SD_1=12 - SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
...@@ -140,6 +140,12 @@ services: ...@@ -140,6 +140,12 @@ services:
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DNN_NI2=oai.ipv4
depends_on: depends_on:
- oai-nrf - oai-nrf
...@@ -183,7 +189,7 @@ services: ...@@ -183,7 +189,7 @@ services:
- NRF_API_VERSION=v1 - NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=1 - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
depends_on: depends_on:
- oai-nrf - oai-nrf
...@@ -237,8 +243,6 @@ services: ...@@ -237,8 +243,6 @@ services:
MNC: '99' MNC: '99'
MNC_LENGTH: 2 MNC_LENGTH: 2
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD0: 1
NSSAI_SD1: 112233
AMF_IP_ADDRESS: 192.168.71.132 AMF_IP_ADDRESS: 192.168.71.132
GNB_NGA_IF_NAME: eth0 GNB_NGA_IF_NAME: eth0
GNB_NGA_IP_ADDRESS: 192.168.71.140 GNB_NGA_IP_ADDRESS: 192.168.71.140
...@@ -266,7 +270,6 @@ services: ...@@ -266,7 +270,6 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1' OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai DNN: oai
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD: 1
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
depends_on: depends_on:
- oai-gnb - oai-gnb
...@@ -290,7 +293,6 @@ services: ...@@ -290,7 +293,6 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1' OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai DNN: oai
NSSAI_SST: 1 NSSAI_SST: 1
NSSAI_SD: 1
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
depends_on: depends_on:
- oai-gnb - oai-gnb
......
...@@ -68,21 +68,7 @@ In the following, we highlight the fields of the file that have to be configured ...@@ -68,21 +68,7 @@ In the following, we highlight the fields of the file that have to be configured
```bash ```bash
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
``` ```
Then, the source and destination IP interfaces for the communication with Then, the source and destination IP interfaces for the communication with
the Core Network also need to be set as shown below. the Core Network also need to be set as shown below.
......
...@@ -314,7 +314,7 @@ services: ...@@ -314,7 +314,7 @@ services:
- NRF_API_VERSION=v1 - NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0x1 - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
depends_on: depends_on:
- oai-nrf - oai-nrf
......
...@@ -32,11 +32,12 @@ ...@@ -32,11 +32,12 @@
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: eNB_name - key: eNB_name
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: local_s_if_name - key: local_s_if_name
...@@ -75,11 +76,12 @@ ...@@ -75,11 +76,12 @@
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: eNB_name - key: eNB_name
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: local_n_if_name - key: local_n_if_name
...@@ -136,11 +138,12 @@ ...@@ -136,11 +138,12 @@
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: eNB_name - key: eNB_name
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: eutra_band - key: eutra_band
...@@ -187,11 +190,12 @@ ...@@ -187,11 +190,12 @@
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: eNB_name - key: eNB_name
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: eutra_band - key: eutra_band
...@@ -226,11 +230,12 @@ ...@@ -226,11 +230,12 @@
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: eNB_name - key: eNB_name
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: local_s_if_name - key: local_s_if_name
...@@ -271,11 +276,12 @@ ...@@ -271,11 +276,12 @@
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: eNB_name - key: eNB_name
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: eutra_band - key: eutra_band
...@@ -316,11 +322,12 @@ ...@@ -316,11 +322,12 @@
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: eNB_name - key: eNB_name
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: eutra_band - key: eutra_band
...@@ -361,11 +368,12 @@ ...@@ -361,11 +368,12 @@
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: eNB_name - key: eNB_name
env: "@ENB_NAME@" env: "@ENB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: eutra_band - key: eutra_band
......
...@@ -82,47 +82,32 @@ def main(): ...@@ -82,47 +82,32 @@ def main():
with open(f'{inputfile}', mode='r') as inputfile, \ with open(f'{inputfile}', mode='r') as inputfile, \
open(outputfile1, mode='w') as outputfile: open(outputfile1, mode='w') as outputfile:
for line in inputfile: for line in inputfile:
count = 0
if re.search(r'EHPLMN_LIST', line): if re.search(r'EHPLMN_LIST', line):
outputfile.write(line) outputfile.write(line)
continue continue
if re.search(r'sd = 0x1;', line): templine = line
templine = re.sub(r'sd = 0x1;', 'sd = 0x@NSSAI_SD0@;', line)
outputfile.write(templine)
continue
if re.search(r'sd = 0x010203;', line):
templine = re.sub(r'sd = 0x010203;', 'sd = 0x@NSSAI_SD0@;', line)
outputfile.write(templine)
continue
if re.search(r'sd = 0x112233;', line):
templine = re.sub(r'sd = 0x112233;', 'sd = 0x@NSSAI_SD1@;', line)
outputfile.write(templine)
continue
for key in config["config"]: for key in config["config"]:
if line.find(key["key"]) >= 0: if templine.find(key["key"]) >= 0:
count += 1 if re.search(r'preference', templine): # false positive
if re.search(r'preference', line): continue
templine = line if re.search(r'sdr_addrs', templine): # false positive
elif re.search(r'mnc_length', line) and key["key"] == "mnc":
continue continue
elif re.search(r'plmn_list', line):
templine = re.sub(r'[0-9]+', '""', line)
templine = re.sub(r'\"\"', key["env"]["mcc"], templine, 1)
templine = re.sub(r'\"\"', key["env"]["mnc"], templine, 1)
templine = re.sub(r'\"\"', key["env"]["mnc_length"], templine, 1)
elif re.search('downlink_frequency', line): elif re.search('downlink_frequency', line):
templine = re.sub(r'[0-9]+', key["env"], line) templine = re.sub(r'[0-9]+', key["env"], line)
elif re.search('uplink_frequency_offset', line): elif re.search('uplink_frequency_offset', line):
templine = re.sub(r'[0-9]+', key["env"], line) templine = re.sub(r'[0-9]+', key["env"], line)
# next: matches key = ( "SOMETHING" ) or key = [ "SOMETHING" ]
elif re.search(r'"(.*?)"', line): elif re.search(key["key"] + "\s*=\s*[\(\[]\s*\"[0-9.a-zA-Z:_-]+\"\s*[\)\]]", templine):
templine = re.sub(r'(?<=")[^"]*(?=")', key["env"], line) templine = re.sub("(" + key["key"] + "\s*=\s*[\(\[]\s*\")[0-9.a-zA-Z:_-]+(\"[\)\]])",
elif re.search(r'[0-9]', line): r'\1' + key["env"] + r"\2", templine)
templine = re.sub(r'\d+', key["env"], line) # next: matches key = "SOMETHING" or key = [SOMETHING],
outputfile.write(templine) elif re.search(key["key"] + "\s*=\s*[\"\[][0-9.a-zA-Z:_/-]+[\"\]]", templine):
templine = re.sub("(" + key["key"] + "\s*=\s*[\"\[])[0-9.a-zA-Z:_/-]+([\"\]])",
if count == 0: r'\1' + key["env"] + r"\2", templine)
outputfile.write(line) # next: matches key = NUMBER
elif re.search(key["key"] + "\s*=\s*[x0-9]+", templine): # x for "0x" hex start
templine = re.sub("(" + key["key"] + "\s*=\s*(?:0x)?)[x0-9]+", r"\1" + key["env"], templine)
outputfile.write(templine)
if __name__ == "__main__": if __name__ == "__main__":
main() main()
...@@ -32,11 +32,16 @@ ...@@ -32,11 +32,16 @@
env: "@GNB_NAME@" env: "@GNB_NAME@"
- key: gNB_name - key: gNB_name
env: "@GNB_NAME@" env: "@GNB_NAME@"
- key: plmn_list - key: mcc
env: env: "@MCC@"
mcc: "@MCC@" - key: mnc
mnc: "@MNC@" env: "@MNC@"
mnc_length: "@MNC_LENGTH@" - key: mnc_length
env: "@MNC_LENGTH@"
- key: sst
env: "@NSSAI_SST@"
- key: sd
env: "@NSSAI_SD@"
- key: tracking_area_code - key: tracking_area_code
env: "@TAC@" env: "@TAC@"
- key: enable_x2 - key: enable_x2
...@@ -81,6 +86,8 @@ ...@@ -81,6 +86,8 @@
env: "@TAC@" env: "@TAC@"
- key: sst - key: sst
env: "@NSSAI_SST@" env: "@NSSAI_SST@"
- key: sd
env: "@NSSAI_SD@"
- key: ipv4 - key: ipv4
env: "@AMF_IP_ADDRESS@" env: "@AMF_IP_ADDRESS@"
- key: GNB_INTERFACE_NAME_FOR_NG_AMF - key: GNB_INTERFACE_NAME_FOR_NG_AMF
...@@ -141,6 +148,8 @@ ...@@ -141,6 +148,8 @@
env: "@TAC@" env: "@TAC@"
- key: sst - key: sst
env: "@NSSAI_SST@" env: "@NSSAI_SST@"
- key: sd
env: "@NSSAI_SD@"
- key: ipv4 - key: ipv4
env: "@AMF_IP_ADDRESS@" env: "@AMF_IP_ADDRESS@"
- key: GNB_INTERFACE_NAME_FOR_NG_AMF - key: GNB_INTERFACE_NAME_FOR_NG_AMF
...@@ -171,6 +180,8 @@ ...@@ -171,6 +180,8 @@
env: "@TAC@" env: "@TAC@"
- key: sst - key: sst
env: "@NSSAI_SST@" env: "@NSSAI_SST@"
- key: sd
env: "@NSSAI_SD@"
- key: ipv4 - key: ipv4
env: "@AMF_IP_ADDRESS@" env: "@AMF_IP_ADDRESS@"
- key: GNB_INTERFACE_NAME_FOR_NG_AMF - key: GNB_INTERFACE_NAME_FOR_NG_AMF
...@@ -209,6 +220,8 @@ ...@@ -209,6 +220,8 @@
env: "@TAC@" env: "@TAC@"
- key: sst - key: sst
env: "@NSSAI_SST@" env: "@NSSAI_SST@"
- key: sd
env: "@NSSAI_SD@"
- key: ipv4 - key: ipv4
env: "@AMF_IP_ADDRESS@" env: "@AMF_IP_ADDRESS@"
- key: GNB_INTERFACE_NAME_FOR_NG_AMF - key: GNB_INTERFACE_NAME_FOR_NG_AMF
...@@ -249,6 +262,8 @@ ...@@ -249,6 +262,8 @@
env: "@TAC@" env: "@TAC@"
- key: sst - key: sst
env: "@NSSAI_SST@" env: "@NSSAI_SST@"
- key: sd
env: "@NSSAI_SD@"
- key: ipv4 - key: ipv4
env: "@AMF_IP_ADDRESS@" env: "@AMF_IP_ADDRESS@"
- key: GNB_INTERFACE_NAME_FOR_NG_AMF - key: GNB_INTERFACE_NAME_FOR_NG_AMF
......
...@@ -1465,9 +1465,10 @@ int RCconfig_NR_NG(MessageDef *msg_p, uint32_t i) { ...@@ -1465,9 +1465,10 @@ int RCconfig_NR_NG(MessageDef *msg_p, uint32_t i) {
NGAP_REGISTER_GNB_REQ (msg_p).num_nssai[l] = SNSSAIParamList.numelt; NGAP_REGISTER_GNB_REQ (msg_p).num_nssai[l] = SNSSAIParamList.numelt;
for (int s = 0; s < SNSSAIParamList.numelt; ++s) { for (int s = 0; s < SNSSAIParamList.numelt; ++s) {
NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sST = *SNSSAIParamList.paramarray[s][GNB_SLICE_SERIVE_TYPE_IDX].uptr; NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sST = *SNSSAIParamList.paramarray[s][GNB_SLICE_SERVICE_TYPE_IDX].uptr;
NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sD_flag = 0; NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sD_flag = 0;
if(*SNSSAIParamList.paramarray[s][GNB_SLICE_DIFFERENTIATOR_IDX].uptr != 0) { if(SNSSAIParamList.paramarray[s][GNB_SLICE_DIFFERENTIATOR_IDX].uptr != 0 // SD is optional
&& *SNSSAIParamList.paramarray[s][GNB_SLICE_DIFFERENTIATOR_IDX].uptr != 0xffffff) { // 0xffffff is "no SD", see 23.003 Sec 28.4.2
NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sD_flag = 1; NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sD_flag = 1;
NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sD[0] = (*SNSSAIParamList.paramarray[s][GNB_SLICE_DIFFERENTIATOR_IDX].uptr & 0xFF0000) >> 16; NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sD[0] = (*SNSSAIParamList.paramarray[s][GNB_SLICE_DIFFERENTIATOR_IDX].uptr & 0xFF0000) >> 16;
NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sD[1] = (*SNSSAIParamList.paramarray[s][GNB_SLICE_DIFFERENTIATOR_IDX].uptr & 0x00FF00) >> 8; NGAP_REGISTER_GNB_REQ (msg_p).s_nssai[l][s].sD[1] = (*SNSSAIParamList.paramarray[s][GNB_SLICE_DIFFERENTIATOR_IDX].uptr & 0x00FF00) >> 8;
......
...@@ -245,23 +245,24 @@ typedef enum { ...@@ -245,23 +245,24 @@ typedef enum {
#define GNB_CONFIG_STRING_SNSSAI_LIST "snssaiList" #define GNB_CONFIG_STRING_SNSSAI_LIST "snssaiList"
#define GNB_CONFIG_STRING_SLICE_SERIVE_TYPE "sst" #define GNB_CONFIG_STRING_SLICE_SERVICE_TYPE "sst"
#define GNB_CONFIG_STRING_SLICE_DIFFERENTIATOR "sd" #define GNB_CONFIG_STRING_SLICE_DIFFERENTIATOR "sd"
#define GNB_SLICE_SERIVE_TYPE_IDX 0 #define GNB_SLICE_SERVICE_TYPE_IDX 0
#define GNB_SLICE_DIFFERENTIATOR_IDX 1 #define GNB_SLICE_DIFFERENTIATOR_IDX 1
#define GNBSNSSAIPARAMS_DESC { \ #define GNBSNSSAIPARAMS_DESC { \
/* optname helpstr paramflags XXXptr def val type numelt */ \ /* optname helpstr paramflags XXXptr def val type numelt */ \
{GNB_CONFIG_STRING_SLICE_SERIVE_TYPE, "slice serive type", 0, uptr:NULL, defuintval:1, TYPE_UINT, 0}, \ {GNB_CONFIG_STRING_SLICE_SERVICE_TYPE, "slice service type", 0, uptr:NULL, defuintval:1, TYPE_UINT, 0}, \
{GNB_CONFIG_STRING_SLICE_DIFFERENTIATOR, "slice differentiator", 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \ {GNB_CONFIG_STRING_SLICE_DIFFERENTIATOR, "slice differentiator", 0, uptr:NULL, defuintval:0xffffff, TYPE_UINT, 0}, \
} }
#define SLICE_SERIVE_TYPE_OKRANGES {1,2,3,4} #define SLICE_SERVICE_TYPE_OKRANGE {0, 255}
#define SLICE_DIFFERENTIATOR_TYPE_OKRANGE {0, 0xffffff}
#define SNSSAIPARAMS_CHECK { \ #define SNSSAIPARAMS_CHECK { \
{ .s1 = { config_check_intval, SLICE_SERIVE_TYPE_OKRANGES, 4 } }, \ { .s2 = { config_check_intrange, SLICE_SERVICE_TYPE_OKRANGE } }, \
{ .s5 = { NULL } }, \ { .s2 = { config_check_intrange, SLICE_DIFFERENTIATOR_TYPE_OKRANGE } }, \
} }
/* AMF configuration parameters section name */ /* AMF configuration parameters section name */
......
...@@ -733,16 +733,20 @@ static void generatePduSessionEstablishRequest(int Mod_id, uicc_t * uicc, as_nas ...@@ -733,16 +733,20 @@ static void generatePduSessionEstablishRequest(int Mod_id, uicc_t * uicc, as_nas
mm_msg->uplink_nas_transport.pdusessionid = 10; mm_msg->uplink_nas_transport.pdusessionid = 10;
mm_msg->uplink_nas_transport.requesttype = 1; mm_msg->uplink_nas_transport.requesttype = 1;
size += 3; size += 3;
mm_msg->uplink_nas_transport.snssai.length = 4; const bool has_nssai_sd = uicc->nssai_sd != 0xffffff; // 0xffffff means "no SD", TS 23.003
const size_t nssai_len = has_nssai_sd ? 4 : 1;
mm_msg->uplink_nas_transport.snssai.length = nssai_len;
//Fixme: it seems there are a lot of memory errors in this: this value was on the stack, //Fixme: it seems there are a lot of memory errors in this: this value was on the stack,
// but pushed in a itti message to another thread // but pushed in a itti message to another thread
// this kind of error seems in many places in 5G NAS // this kind of error seems in many places in 5G NAS
mm_msg->uplink_nas_transport.snssai.value=calloc(1,4); mm_msg->uplink_nas_transport.snssai.value = calloc(1, nssai_len);
mm_msg->uplink_nas_transport.snssai.value[0] = uicc->nssai_sst; mm_msg->uplink_nas_transport.snssai.value[0] = uicc->nssai_sst;
mm_msg->uplink_nas_transport.snssai.value[1] = (uicc->nssai_sd>>16)&0xFF; if (has_nssai_sd) {
mm_msg->uplink_nas_transport.snssai.value[2] = (uicc->nssai_sd>>8)&0xFF; mm_msg->uplink_nas_transport.snssai.value[1] = (uicc->nssai_sd >> 16) & 0xFF;
mm_msg->uplink_nas_transport.snssai.value[3] = (uicc->nssai_sd)&0xFF; mm_msg->uplink_nas_transport.snssai.value[2] = (uicc->nssai_sd >> 8) & 0xFF;
size += (1+1+4); mm_msg->uplink_nas_transport.snssai.value[3] = (uicc->nssai_sd) & 0xFF;
}
size += 1 + 1 + nssai_len;
int dnnSize=strlen(uicc->dnnStr); int dnnSize=strlen(uicc->dnnStr);
mm_msg->uplink_nas_transport.dnn.value=calloc(1,dnnSize+1); mm_msg->uplink_nas_transport.dnn.value=calloc(1,dnnSize+1);
mm_msg->uplink_nas_transport.dnn.length = dnnSize + 1; mm_msg->uplink_nas_transport.dnn.length = dnnSize + 1;
......
...@@ -44,7 +44,7 @@ extern uint16_t NB_UE_INST; ...@@ -44,7 +44,7 @@ extern uint16_t NB_UE_INST;
{"sqn", "USIM sqn\n", 0, strptr:&uicc->sqnStr, defstrval:"000000", TYPE_STRING, 0 }, \ {"sqn", "USIM sqn\n", 0, strptr:&uicc->sqnStr, defstrval:"000000", TYPE_STRING, 0 }, \
{"dnn", "UE dnn (apn)\n", 0, strptr:&uicc->dnnStr, defstrval:"oai", TYPE_STRING, 0 }, \ {"dnn", "UE dnn (apn)\n", 0, strptr:&uicc->dnnStr, defstrval:"oai", TYPE_STRING, 0 }, \
{"nssai_sst", "UE nssai\n", 0, iptr:&uicc->nssai_sst, defintval:1, TYPE_INT, 0 }, \ {"nssai_sst", "UE nssai\n", 0, iptr:&uicc->nssai_sst, defintval:1, TYPE_INT, 0 }, \
{"nssai_sd", "UE nssai\n", 0, iptr:&uicc->nssai_sd, defintval:1, TYPE_INT, 0 }, \ {"nssai_sd", "UE nssai\n", 0, iptr:&uicc->nssai_sd, defintval:0xffffff, TYPE_INT, 0 }, \
}; };
static uicc_t** uiccArray=NULL; static uicc_t** uiccArray=NULL;
...@@ -73,7 +73,10 @@ uicc_t *init_uicc(char *sectionName) { ...@@ -73,7 +73,10 @@ uicc_t *init_uicc(char *sectionName) {
// key, OPc, sqn, amf don't need to be read from the true USIM // key, OPc, sqn, amf don't need to be read from the true USIM
int ret = config_get( uicc_params,sizeof(uicc_params)/sizeof(paramdef_t),sectionName); int ret = config_get( uicc_params,sizeof(uicc_params)/sizeof(paramdef_t),sectionName);
AssertFatal(ret >= 0, "configuration couldn't be performed for uicc name: %s", sectionName); AssertFatal(ret >= 0, "configuration couldn't be performed for uicc name: %s", sectionName);
LOG_I(SIM, "UICC simulation: IMSI=%s, Ki=%s, OPc=%s\n", uicc->imsiStr, uicc->keyStr, uicc->opcStr); LOG_I(SIM,
"UICC simulation: IMSI=%s, Ki=%s, OPc=%s, DNN=%s, SST=0x%02x, SD=0x%06x\n",
uicc->imsiStr, uicc->keyStr, uicc->opcStr,
uicc->dnnStr, uicc->nssai_sst, uicc->nssai_sd);
to_hex(uicc->keyStr,uicc->key, sizeof(uicc->key) ); to_hex(uicc->keyStr,uicc->key, sizeof(uicc->key) );
to_hex(uicc->opcStr,uicc->opc, sizeof(uicc->opc) ); to_hex(uicc->opcStr,uicc->opc, sizeof(uicc->opc) );
to_hex(uicc->sqnStr,uicc->sqn, sizeof(uicc->sqn) ); to_hex(uicc->sqnStr,uicc->sqn, sizeof(uicc->sqn) );
......
...@@ -15,23 +15,7 @@ gNBs = ...@@ -15,23 +15,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -14,23 +14,7 @@ gNBs = ...@@ -14,23 +14,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -15,23 +15,8 @@ gNBs = ...@@ -15,23 +15,8 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 100; tracking_area_code = 100;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 93; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 93;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x010203; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
tr_s_preference = "local_mac" tr_s_preference = "local_mac"
////////// Physical parameters: ////////// Physical parameters:
......
...@@ -11,18 +11,7 @@ gNBs = ...@@ -11,18 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,22 +11,7 @@ gNBs = ...@@ -11,22 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -10,17 +10,7 @@ gNBs = ( ...@@ -10,17 +10,7 @@ gNBs = (
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ( plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }); });
{
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = ({
sst = 1;
sd = 0x1; // 0 false, else true
});
}
);
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,18 +11,7 @@ gNBs = ...@@ -11,18 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,22 +11,7 @@ gNBs = ...@@ -11,22 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,18 +11,7 @@ gNBs = ...@@ -11,18 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -13,18 +13,7 @@ gNBs = ...@@ -13,18 +13,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 450; mnc = 05; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 450;
mnc = 05;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0xd143a5; // 0 false, else true
}
);
});
tr_s_preference = "local_mac" tr_s_preference = "local_mac"
......
...@@ -11,17 +11,7 @@ gNBs = ...@@ -11,17 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,17 +11,7 @@ gNBs = ...@@ -11,17 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
...@@ -11,22 +11,7 @@ gNBs = ...@@ -11,22 +11,7 @@ gNBs =
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1; tracking_area_code = 1;
plmn_list = ({ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
mcc = 208;
mnc = 99;
mnc_length = 2;
snssaiList = (
{
sst = 1;
sd = 0x1; // 0 false, else true
},
{
sst = 1;
sd = 0x112233; // 0 false, else true
}
);
});
nr_cellid = 12345678L; nr_cellid = 12345678L;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment