Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG-RAN
Commits
991de362
Commit
991de362
authored
Nov 14, 2022
by
luis_pereira87
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Tutorials: Change PLMN to the 3GPP Test Network
parent
a398c5a9
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
25 additions
and
29 deletions
+25
-29
doc/NR_SA_CN5G_gNB_USRP_COTS_UE_Tutorial.md
doc/NR_SA_CN5G_gNB_USRP_COTS_UE_Tutorial.md
+3
-3
doc/tutorial_resources/docker-compose-basic-nrf.yaml
doc/tutorial_resources/docker-compose-basic-nrf.yaml
+13
-13
doc/tutorial_resources/oai_db.sql
doc/tutorial_resources/oai_db.sql
+6
-10
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.fr1.273PRB.2x2.usrpn300.conf
...IC-NR-5GC/CONF/gnb.sa.band77.fr1.273PRB.2x2.usrpn300.conf
+1
-1
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
...ENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
+1
-1
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf
...IC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf
+1
-1
No files found.
doc/NR_SA_CN5G_gNB_USRP_COTS_UE_Tutorial.md
View file @
991de362
...
...
@@ -100,7 +100,7 @@ wget -O ~/oai-cn5g-fed/docker-compose/database/oai_db.sql https://gitlab.eurecom
Program SIM Card with
[
Open Cells Project
](
https://open-cells.com/
)
application
[
uicc-v2.6
](
https://open-cells.com/d5138782a8739209ec5760865b1e53b0/uicc-v2.6.tgz
)
.
```
bash
sudo
./program_uicc
--adm
12345678
--imsi
20899
0000000001
--isdn
00000001
--acc
0001
--key
fec86ba6eb707ed08905757b1bb44b8f
--opc
C42449363BBAD02B66D16BC975D77CC1
-spn
"OpenAirInterface"
--authenticate
sudo
./program_uicc
--adm
12345678
--imsi
00101
0000000001
--isdn
00000001
--acc
0001
--key
fec86ba6eb707ed08905757b1bb44b8f
--opc
C42449363BBAD02B66D16BC975D77CC1
-spn
"OpenAirInterface"
--authenticate
```
...
...
@@ -244,7 +244,7 @@ Run OAI UE
cd
~/openairinterface5g
source
oaienv
cd
cmake_targets/ran_build/build
sudo
./nr-uesoftmodem
-r
106
--numerology
1
--band
78
-C
3619200000
--nokrnmod
--ue-fo-compensation
--sa
-E
--uicc0
.nssai_sd 1
sudo
./nr-uesoftmodem
-r
106
--numerology
1
--band
78
-C
3619200000
--nokrnmod
--ue-fo-compensation
--sa
-E
--uicc0
.
imsi 001010000000001
--uicc0
.
nssai_sd 1
```
### 5.2.2 Testing with OAI UE with RFsimulator
...
...
@@ -257,7 +257,7 @@ Run OAI UE with RFsimulator
cd
~/openairinterface5g
source
oaienv
cd
cmake_targets/ran_build/build
sudo
RFSIMULATOR
=
127.0.0.1 ./nr-uesoftmodem
-r
106
--numerology
1
--band
78
-C
3619200000
--nokrnmod
--rfsim
--sa
--uicc0
.nssai_sd 1
sudo
RFSIMULATOR
=
127.0.0.1 ./nr-uesoftmodem
-r
106
--numerology
1
--band
78
-C
3619200000
--nokrnmod
--rfsim
--sa
--uicc0
.
imsi 001010000000001
--uicc0
.
nssai_sd 1
```
### 5.2.3 Ping test
...
...
doc/tutorial_resources/docker-compose-basic-nrf.yaml
View file @
991de362
...
...
@@ -89,8 +89,8 @@ services:
-
AUSF_NAME=OAI_AUSF
-
SBI_IF_NAME=eth0
-
SBI_PORT=80
-
USE_HTTP2
-
SBI_HTTP2_PORT
-
USE_HTTP2
=no
-
SBI_HTTP2_PORT
=8080
-
USE_FQDN_DNS=yes
-
UDM_IP_ADDRESS=192.168.70.137
-
UDM_PORT=80
...
...
@@ -127,20 +127,20 @@ services:
-
TZ=Europe/paris
-
INSTANCE=0
-
PID_DIRECTORY=/var/run
-
MCC=
208
-
MNC=
99
-
MCC=
001
-
MNC=
01
-
REGION_ID=128
-
AMF_SET_ID=1
-
SERVED_GUAMI_MCC_0=
208
-
SERVED_GUAMI_MNC_0=
99
-
SERVED_GUAMI_MCC_0=
001
-
SERVED_GUAMI_MNC_0=
01
-
SERVED_GUAMI_REGION_ID_0=128
-
SERVED_GUAMI_AMF_SET_ID_0=1
-
SERVED_GUAMI_MCC_1=460
-
SERVED_GUAMI_MNC_1=11
-
SERVED_GUAMI_REGION_ID_1=10
-
SERVED_GUAMI_AMF_SET_ID_1=1
-
PLMN_SUPPORT_MCC=
208
-
PLMN_SUPPORT_MNC=
99
-
PLMN_SUPPORT_MCC=
001
-
PLMN_SUPPORT_MNC=
01
-
PLMN_SUPPORT_TAC=0x0001
-
SST_0=1
-
SD_0=0x1
...
...
@@ -230,8 +230,8 @@ services:
-
DNN_RANGE0=12.1.1.2 - 12.1.1.253
-
NSSAI_SST0=1
-
NSSAI_SD0=0x1
-
SESSION_AMBR_UL0=1000Mbps
-
SESSION_AMBR_DL0=1000Mbps
-
SESSION_AMBR_UL0=1000
0
Mbps
-
SESSION_AMBR_DL0=1000
0
Mbps
-
DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
# only needed when ims is being used
-
ENABLE_USAGE_REPORTING=no
# Set yes if UE USAGE REPORTING is to be done at UPF
depends_on
:
...
...
@@ -253,9 +253,9 @@ services:
-
NETWORK_UE_IP=12.1.1.0/24
-
SPGWC0_IP_ADDRESS=192.168.70.133
-
BYPASS_UL_PFCP_RULES=no
-
MCC=
208
-
MNC=
99
-
MNC03=0
99
-
MCC=
001
-
MNC=
01
-
MNC03=0
01
-
TAC=1
-
GW_ID=1
-
THREAD_S1U_PRIO=80
...
...
doc/tutorial_resources/oai_db.sql
View file @
991de362
...
...
@@ -151,13 +151,11 @@ CREATE TABLE `AuthenticationSubscription` (
--
INSERT
INTO
`AuthenticationSubscription`
(
`ueid`
,
`authenticationMethod`
,
`encPermanentKey`
,
`protectionParameterId`
,
`sequenceNumber`
,
`authenticationManagementField`
,
`algorithmId`
,
`encOpcKey`
,
`encTopcKey`
,
`vectorGenerationInHss`
,
`n5gcAuthMethod`
,
`rgAuthenticationInd`
,
`supi`
)
VALUES
(
'
2089900007487'
,
'5G_AKA'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'{
\"
sqn
\"
:
\"
000000000000
\"
,
\"
sqnScheme
\"
:
\"
NON_TIME_BASED
\"
,
\"
lastIndexes
\"
: {
\"
ausf
\"
: 0}}'
,
'8000'
,
'milenage'
,
'C42449363BBAD02B66D16BC975D77CC1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'2089900007487
'
);
(
'
001010000000001'
,
'5G_AKA'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'{
\"
sqn
\"
:
\"
000000000000
\"
,
\"
sqnScheme
\"
:
\"
NON_TIME_BASED
\"
,
\"
lastIndexes
\"
: {
\"
ausf
\"
: 0}}'
,
'8000'
,
'milenage'
,
'C42449363BBAD02B66D16BC975D77CC1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'001010000000001
'
);
INSERT
INTO
`AuthenticationSubscription`
(
`ueid`
,
`authenticationMethod`
,
`encPermanentKey`
,
`protectionParameterId`
,
`sequenceNumber`
,
`authenticationManagementField`
,
`algorithmId`
,
`encOpcKey`
,
`encTopcKey`
,
`vectorGenerationInHss`
,
`n5gcAuthMethod`
,
`rgAuthenticationInd`
,
`supi`
)
VALUES
(
'
208990000000001'
,
'5G_AKA'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'{
\"
sqn
\"
:
\"
000000000000
\"
,
\"
sqnScheme
\"
:
\"
NON_TIME_BASED
\"
,
\"
lastIndexes
\"
: {
\"
ausf
\"
: 0}}'
,
'8000'
,
'milenage'
,
'C42449363BBAD02B66D16BC975D77CC1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'208990000000001
'
);
(
'
001010000000002'
,
'5G_AKA'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'{
\"
sqn
\"
:
\"
000000000000
\"
,
\"
sqnScheme
\"
:
\"
NON_TIME_BASED
\"
,
\"
lastIndexes
\"
: {
\"
ausf
\"
: 0}}'
,
'8000'
,
'milenage'
,
'C42449363BBAD02B66D16BC975D77CC1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'001010000000002
'
);
INSERT
INTO
`AuthenticationSubscription`
(
`ueid`
,
`authenticationMethod`
,
`encPermanentKey`
,
`protectionParameterId`
,
`sequenceNumber`
,
`authenticationManagementField`
,
`algorithmId`
,
`encOpcKey`
,
`encTopcKey`
,
`vectorGenerationInHss`
,
`n5gcAuthMethod`
,
`rgAuthenticationInd`
,
`supi`
)
VALUES
(
'208990000000002'
,
'5G_AKA'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'{
\"
sqn
\"
:
\"
000000000000
\"
,
\"
sqnScheme
\"
:
\"
NON_TIME_BASED
\"
,
\"
lastIndexes
\"
: {
\"
ausf
\"
: 0}}'
,
'8000'
,
'milenage'
,
'C42449363BBAD02B66D16BC975D77CC1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'208990000000002'
);
INSERT
INTO
`AuthenticationSubscription`
(
`ueid`
,
`authenticationMethod`
,
`encPermanentKey`
,
`protectionParameterId`
,
`sequenceNumber`
,
`authenticationManagementField`
,
`algorithmId`
,
`encOpcKey`
,
`encTopcKey`
,
`vectorGenerationInHss`
,
`n5gcAuthMethod`
,
`rgAuthenticationInd`
,
`supi`
)
VALUES
(
'208990000000003'
,
'5G_AKA'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'{
\"
sqn
\"
:
\"
000000000000
\"
,
\"
sqnScheme
\"
:
\"
NON_TIME_BASED
\"
,
\"
lastIndexes
\"
: {
\"
ausf
\"
: 0}}'
,
'8000'
,
'milenage'
,
'C42449363BBAD02B66D16BC975D77CC1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'208990000000003'
);
(
'001010000000003'
,
'5G_AKA'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'fec86ba6eb707ed08905757b1bb44b8f'
,
'{
\"
sqn
\"
:
\"
000000000000
\"
,
\"
sqnScheme
\"
:
\"
NON_TIME_BASED
\"
,
\"
lastIndexes
\"
: {
\"
ausf
\"
: 0}}'
,
'8000'
,
'milenage'
,
'C42449363BBAD02B66D16BC975D77CC1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'001010000000003'
);
-- --------------------------------------------------------
...
...
@@ -211,13 +209,11 @@ CREATE TABLE `SessionManagementSubscriptionData` (
--
INSERT
INTO
`SessionManagementSubscriptionData`
(
`ueid`
,
`servingPlmnid`
,
`singleNssai`
,
`dnnConfigurations`
)
VALUES
(
'2089900007487'
,
'20899'
,
'{
\"
sst
\"
: 1,
\"
sd
\"
:
\"
1
\"
}'
,
'{
\"
oai
\"
:{
\"
pduSessionTypes
\"
:{
\"
defaultSessionType
\"
:
\"
IPV4
\"
},
\"
sscModes
\"
: {
\"
defaultSscMode
\"
:
\"
SSC_MODE_1
\"
},
\"
5gQosProfile
\"
: {
\"
5qi
\"
: 6,
\"
arp
\"
:{
\"
priorityLevel
\"
: 1,
\"
preemptCap
\"
:
\"
NOT_PREEMPT
\"
,
\"
preemptVuln
\"
:
\"
NOT_PREEMPTABLE
\"
},
\"
priorityLevel
\"
:1},
\"
sessionAmbr
\"
:{
\"
uplink
\"
:
\"
1000Mbps
\"
,
\"
downlink
\"
:
\"
1000Mbps
\"
},
\"
staticIpAddress
\"
:[{
\"
ipv4Addr
\"
:
\"
12.1.1.2
\"
}]}}'
);
INSERT
INTO
`SessionManagementSubscriptionData`
(
`ueid`
,
`servingPlmnid`
,
`singleNssai`
,
`dnnConfigurations`
)
VALUES
(
'208990000000001'
,
'20899'
,
'{
\"
sst
\"
: 1,
\"
sd
\"
:
\"
1
\"
}'
,
'{
\"
oai
\"
:{
\"
pduSessionTypes
\"
:{
\"
defaultSessionType
\"
:
\"
IPV4
\"
},
\"
sscModes
\"
: {
\"
defaultSscMode
\"
:
\"
SSC_MODE_1
\"
},
\"
5gQosProfile
\"
: {
\"
5qi
\"
: 6,
\"
arp
\"
:{
\"
priorityLevel
\"
: 1,
\"
preemptCap
\"
:
\"
NOT_PREEMPT
\"
,
\"
preemptVuln
\"
:
\"
NOT_PREEMPTABLE
\"
},
\"
priorityLevel
\"
:1},
\"
sessionAmbr
\"
:{
\"
uplink
\"
:
\"
1000Mbps
\"
,
\"
downlink
\"
:
\"
1000Mbps
\"
},
\"
staticIpAddress
\"
:[{
\"
ipv4Addr
\"
:
\"
12.1.1.2
\"
}]}}'
);
(
'001010000000001'
,
'00101'
,
'{
\"
sst
\"
: 1,
\"
sd
\"
:
\"
1
\"
}'
,
'{
\"
oai
\"
:{
\"
pduSessionTypes
\"
:{
\"
defaultSessionType
\"
:
\"
IPV4
\"
},
\"
sscModes
\"
: {
\"
defaultSscMode
\"
:
\"
SSC_MODE_1
\"
},
\"
5gQosProfile
\"
: {
\"
5qi
\"
: 6,
\"
arp
\"
:{
\"
priorityLevel
\"
: 1,
\"
preemptCap
\"
:
\"
NOT_PREEMPT
\"
,
\"
preemptVuln
\"
:
\"
NOT_PREEMPTABLE
\"
},
\"
priorityLevel
\"
:1},
\"
sessionAmbr
\"
:{
\"
uplink
\"
:
\"
10000Mbps
\"
,
\"
downlink
\"
:
\"
10000Mbps
\"
},
\"
staticIpAddress
\"
:[{
\"
ipv4Addr
\"
:
\"
12.1.1.2
\"
}]}}'
);
INSERT
INTO
`SessionManagementSubscriptionData`
(
`ueid`
,
`servingPlmnid`
,
`singleNssai`
,
`dnnConfigurations`
)
VALUES
(
'
208990000000002'
,
'20899'
,
'{
\"
sst
\"
: 1,
\"
sd
\"
:
\"
1
\"
}'
,
'{
\"
oai
\"
:{
\"
pduSessionTypes
\"
:{
\"
defaultSessionType
\"
:
\"
IPV4
\"
},
\"
sscModes
\"
: {
\"
defaultSscMode
\"
:
\"
SSC_MODE_1
\"
},
\"
5gQosProfile
\"
: {
\"
5qi
\"
: 6,
\"
arp
\"
:{
\"
priorityLevel
\"
: 1,
\"
preemptCap
\"
:
\"
NOT_PREEMPT
\"
,
\"
preemptVuln
\"
:
\"
NOT_PREEMPTABLE
\"
},
\"
priorityLevel
\"
:1},
\"
sessionAmbr
\"
:{
\"
uplink
\"
:
\"
1000Mbps
\"
,
\"
downlink
\"
:
\"
1
000Mbps
\"
},
\"
staticIpAddress
\"
:[{
\"
ipv4Addr
\"
:
\"
12.1.1.3
\"
}]}}'
);
(
'
001010000000002'
,
'00101'
,
'{
\"
sst
\"
: 1,
\"
sd
\"
:
\"
1
\"
}'
,
'{
\"
oai
\"
:{
\"
pduSessionTypes
\"
:{
\"
defaultSessionType
\"
:
\"
IPV4
\"
},
\"
sscModes
\"
: {
\"
defaultSscMode
\"
:
\"
SSC_MODE_1
\"
},
\"
5gQosProfile
\"
: {
\"
5qi
\"
: 6,
\"
arp
\"
:{
\"
priorityLevel
\"
: 1,
\"
preemptCap
\"
:
\"
NOT_PREEMPT
\"
,
\"
preemptVuln
\"
:
\"
NOT_PREEMPTABLE
\"
},
\"
priorityLevel
\"
:1},
\"
sessionAmbr
\"
:{
\"
uplink
\"
:
\"
10000Mbps
\"
,
\"
downlink
\"
:
\"
10
000Mbps
\"
},
\"
staticIpAddress
\"
:[{
\"
ipv4Addr
\"
:
\"
12.1.1.3
\"
}]}}'
);
INSERT
INTO
`SessionManagementSubscriptionData`
(
`ueid`
,
`servingPlmnid`
,
`singleNssai`
,
`dnnConfigurations`
)
VALUES
(
'
208990000000003'
,
'20899'
,
'{
\"
sst
\"
: 1,
\"
sd
\"
:
\"
1
\"
}'
,
'{
\"
oai
\"
:{
\"
pduSessionTypes
\"
:{
\"
defaultSessionType
\"
:
\"
IPV4
\"
},
\"
sscModes
\"
: {
\"
defaultSscMode
\"
:
\"
SSC_MODE_1
\"
},
\"
5gQosProfile
\"
: {
\"
5qi
\"
: 6,
\"
arp
\"
:{
\"
priorityLevel
\"
: 1,
\"
preemptCap
\"
:
\"
NOT_PREEMPT
\"
,
\"
preemptVuln
\"
:
\"
NOT_PREEMPTABLE
\"
},
\"
priorityLevel
\"
:1},
\"
sessionAmbr
\"
:{
\"
uplink
\"
:
\"
1000Mbps
\"
,
\"
downlink
\"
:
\"
1
000Mbps
\"
},
\"
staticIpAddress
\"
:[{
\"
ipv4Addr
\"
:
\"
12.1.1.4
\"
}]}}'
);
(
'
001010000000003'
,
'00101'
,
'{
\"
sst
\"
: 1,
\"
sd
\"
:
\"
1
\"
}'
,
'{
\"
oai
\"
:{
\"
pduSessionTypes
\"
:{
\"
defaultSessionType
\"
:
\"
IPV4
\"
},
\"
sscModes
\"
: {
\"
defaultSscMode
\"
:
\"
SSC_MODE_1
\"
},
\"
5gQosProfile
\"
: {
\"
5qi
\"
: 6,
\"
arp
\"
:{
\"
priorityLevel
\"
: 1,
\"
preemptCap
\"
:
\"
NOT_PREEMPT
\"
,
\"
preemptVuln
\"
:
\"
NOT_PREEMPTABLE
\"
},
\"
priorityLevel
\"
:1},
\"
sessionAmbr
\"
:{
\"
uplink
\"
:
\"
10000Mbps
\"
,
\"
downlink
\"
:
\"
10
000Mbps
\"
},
\"
staticIpAddress
\"
:[{
\"
ipv4Addr
\"
:
\"
12.1.1.4
\"
}]}}'
);
-- --------------------------------------------------------
...
...
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.fr1.273PRB.2x2.usrpn300.conf
View file @
991de362
...
...
@@ -10,7 +10,7 @@ gNBs = (
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
1
;
plmn_list
= ({
mcc
=
208
;
mnc
=
99
;
mnc_length
=
2
;
snssaiList
= ({
sst
=
1
;
sd
=
0
x1
; }); });
plmn_list
= ({
mcc
=
001
;
mnc
=
01
;
mnc_length
=
2
;
snssaiList
= ({
sst
=
1
;
sd
=
0
x1
; }); });
nr_cellid
=
12345678
L
;
...
...
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
View file @
991de362
...
...
@@ -11,7 +11,7 @@ gNBs =
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
1
;
plmn_list
= ({
mcc
=
208
;
mnc
=
99
;
mnc_length
=
2
;
snssaiList
= ({
sst
=
1
;
sd
=
0
x1
; }) });
plmn_list
= ({
mcc
=
001
;
mnc
=
01
;
mnc_length
=
2
;
snssaiList
= ({
sst
=
1
;
sd
=
0
x1
; }) });
nr_cellid
=
12345678
L
;
...
...
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf
View file @
991de362
...
...
@@ -11,7 +11,7 @@ gNBs =
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
1
;
plmn_list
= ({
mcc
=
208
;
mnc
=
99
;
mnc_length
=
2
;
snssaiList
= ({
sst
=
1
}) });
plmn_list
= ({
mcc
=
001
;
mnc
=
01
;
mnc_length
=
2
;
snssaiList
= ({
sst
=
1
;
sd
=
1
;
}) });
nr_cellid
=
12345678
L
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment