Unverified Commit fd6ed460 authored by kharade's avatar kharade

code clean

parent 3d358dd2
......@@ -37,7 +37,7 @@ RUN apt update && \
# Some GIT configuration commands quite useful
RUN /bin/bash -c "if [[ -v NEEDED_GIT_PROXY ]]; then git config --global http.proxy $NEEDED_GIT_PROXY; fi"
#RUN /bin/bash -c "if [[ -v NEEDED_GIT_PROXY ]]; then git config --global http.proxy $NEEDED_GIT_PROXY; fi"
RUN git config --global https.postBuffer 123289600
RUN git config --global http.sslverify false
......@@ -67,7 +67,7 @@ RUN make install-dep build-release -C vpp
#---------------------------------------------------------------------
# TARGET IMAGE
#---------------------------------------------------------------------
FROM ubuntu:bionic as vpp-upf
FROM ubuntu:bionic as vpp-upg
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
RUN apt-get update && \
......
......@@ -68,8 +68,8 @@ RUN wget http://repo.openfusion.net/centos7-x86_64/hyperscan-devel-5.3.0-1.of.el
http://repo.openfusion.net/centos7-x86_64/hyperscan-5.3.0-1.of.el7.x86_64.rpm \
&& rpm -i *.rpm
WORKDIR /vpp-upg
COPY scripts/ /vpp-upg/scripts
WORKDIR /vpp-upf
COPY scripts/ /vpp-upf/scripts
# Applying vpp patches
RUN git clone -b stable/2101 https://github.com/fdio/vpp.git && \
......@@ -105,29 +105,29 @@ RUN wget http://repo.openfusion.net/centos7-x86_64/hyperscan-devel-5.3.0-1.of.el
http://repo.openfusion.net/centos7-x86_64/hyperscan-5.3.0-1.of.el7.x86_64.rpm \
&& rpm -i *.rpm && rm *.rpm && yum remove -y wget
WORKDIR /openair-upg/bin/
COPY --from=vpp-upg-builder /vpp-upg/scripts/entrypoint.sh /openair-upg/bin/entrypoint.sh
COPY --from=vpp-upg-builder /vpp-upg/vpp/build-root/install-vpp-native/vpp/bin/vpp .
COPY --from=vpp-upg-builder /vpp-upg/vpp/build-root/install-vpp-native/vpp/bin/vppctl .
WORKDIR /openair-upf/bin
COPY --from=vpp-upg-builder /vpp-upf/scripts/entrypoint.sh .
COPY --from=vpp-upg-builder /vpp-upf/vpp/build-root/install-vpp-native/vpp/bin/vpp .
COPY --from=vpp-upg-builder /vpp-upf/vpp/build-root/install-vpp-native/vpp/bin/vppctl .
WORKDIR /openair-upg/etc
COPY --from=vpp-upg-builder /vpp-upg/scripts/upg_conf/init.conf /openair-upg/etc/init.conf
COPY --from=vpp-upg-builder /vpp-upg/scripts/upg_conf/startup_debug.conf /openair-upg/etc/startup_debug.conf
WORKDIR /openair-upf/etc
COPY --from=vpp-upg-builder /vpp-upf/scripts/upg_conf/init.conf .
COPY --from=vpp-upg-builder /vpp-upf/scripts/upg_conf/startup_debug.conf .
WORKDIR /usr/lib64
COPY --from=vpp-upg-builder /vpp-upg/vpp/build-root/install-vpp-native/vpp/lib/ .
COPY --from=vpp-upg-builder /vpp-upf/vpp/build-root/install-vpp-native/vpp/lib/ .
RUN ldconfig
RUN groupadd vpp
WORKDIR /vpp-upg/
COPY --from=vpp-upg-builder /vpp-upg/scripts/run.sh /openair-upg/run.sh
WORKDIR /openair-upf
COPY --from=vpp-upg-builder /vpp-upg/scripts/run.sh .
#expose
EXPOSE 8085/udp 2152/udp
ENTRYPOINT ["/openair-upg/bin/entrypoint.sh"]
CMD ["/openair-upg/run.sh"]
CMD ["/openair-upf/run.sh"]
......@@ -5,7 +5,7 @@ $ git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-upf-vpp.git
$ cd oai-cn5g-upf-vpp
$ git checkout develop
$ git checkout vpp-upf
```
# 2. Generic Parameters #
......@@ -19,7 +19,7 @@ Here in our network configuration, we need to pass the "GIT PROXY" configuration
## 3.1 On a Ubuntu 18.04 Host ##
```bash
$ docker build --target vpp-upf --tag vpp-upf:develop \
$ docker build --target vpp-upg --tag vpp-upg:develop \
--file docker/Dockerfile.ubuntu.18.04 \
--build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" .
```
......@@ -27,7 +27,7 @@ $ docker build --target vpp-upf --tag vpp-upf:develop \
## 3.2 On a RHEL 7 Host ##
```bash
$ docker build --target vpp-upg --tag vpp-upf:develop \
$ docker build --target vpp-upg --tag vpp-upg:develop \
--file docker/Dockerfile.vppupf.rhel7 \
--build-arg EURECOM_PROXY="http://proxy.eurecom.fr:8080" .
```
......@@ -19,4 +19,3 @@
3. [Building the Docker Image](./BUILD_IMAGE.md)
4. [About network configuration](./VPP_NETWORKING.md)
5. [About VPP-UPF configuration](./VPP_UPF_CONFIG.md)
6. [Development guidelines for VPP-UPF](./DEVELOPMENT_GUIDELINE.md)
......@@ -28,12 +28,3 @@ ubuntu@test-upf:~/oai-cn5g-upf-vpp/build/scripts$ ./build_vpp_upf -I -f
```bash
ubuntu@test-upf:~/oai-cn5g-upf-vpp/build/scripts$ ./build_vpp_upf -c -V -b Debug
```
### Configure VPP-UPF
Refer this page for [VPP-UPF configuration](./VPP_UPF_CONFIG.md)
### Launch VPP-UPF
```bash
ubuntu@test-upf:~$ cd oai-cn5g-upf-vpp/vpp
ubuntu@test-upf:~/oai-cn5g-upf-vpp/vpp$ ./run.sh
```
......@@ -8,6 +8,7 @@ Here I have three interfaces to docker container. We rename them just for sec of
additional route added for UE traffic 10.10.10.0/24 network <br/>
<br/>
<br/>
```bash
ip link set eth0 down
ip link set eth0 name access
......
......@@ -9,39 +9,41 @@ Below is sample vpp-upf configuration. We use at lease three veth-pairs as UPF i
ip table add 1
ip table add 2
####### Create N4 interface
create host-interface name core
set interface mac address host-core 00:0c:29:46:1f:54
set interface mtu 1500 host-core
set interface ip table host-core 0
set interface ip address host-core 192.168.61.201/26
set interface state host-core up
####### Create N3 interface
create host-interface name access
set interface mac address host-access 00:0c:29:46:1f:55
set interface mtu 1500 host-access
set interface ip table host-access 1
set interface ip address host-access 192.168.62.201/26
set interface state host-access up
####### Create N6 interface
create host-interface name sgi
set interface mac address host-sgi 00:0c:29:46:1f:53
set interface mtu 1500 host-sgi
set interface ip table host-sgi 2
set interface ip address host-sgi 192.168.63.201/26
set interface state host-sgi up
####### Add ip routes
ip route add 0.0.0.0/0 table 0 via 192.168.61.196 host-core
ip route add 0.0.0.0/0 table 1 via 192.168.62.210 host-access
ip route add 0.0.0.0/0 table 2 via 192.168.63.194 host-sgi
####### Configure PFCP enpoint
upf pfcp endpoint ip 192.168.61.201 vrf 0
####### Add network instance
upf nwi name core vrf 0
upf nwi name access vrf 1
upf nwi name sgi vrf 2
####### Add fqdn
upf node-id fqdn gwu1.vpp.upg.node.epc.mnc095.mcc208.3gppnetwork.org
####### Specify release for TS 3GPP 29.244 (15 or 16)
upf specification release 16
trace add af-packet-input 100
......
......@@ -44,24 +44,21 @@ done
# Near future we will have multiple interfaces (e.g. two n6 interface for edge computing case)
# We define in this order in docker-compose -> it is alphabetical order
#
SGI_IPV4=$(ifconfig $INTERFACE_SGI | grep "inet " | awk '{print $2}')
SGI_IPV4=$(ifconfig eth2 | grep "inet " | awk '{print $2}')
UE_DL_Gw=$SGI_IPV4
ip link set eth0 down
ip link set eth0 name access
ip link set $INTERFACE_ACCESS down
ip link set $INTERFACE_ACCESS name access
ip link set access up
ip link set eth1 down
ip link set eth1 name core
ip link set $INTERFACE_CORE down
ip link set $INTERFACE_CORE name core
ip link set core up
ip link set eth2 down
ip link set eth2 name sgi
ip link set $INTERFACE_SGI down
ip link set $INTERFACE_SGI name sgi
ip link set sgi up
ip route add $NETWORK_UE_IP via $UE_DL_Gw dev sgi
ip route add $NETWORK_UE_IP via $SGI_IPV4 dev sgi
echo "Done setting the configuration"
......
--- a/Makefile 2021-04-30 14:53:42.462488110 +0200
+++ b/Makefile 2021-04-30 14:50:53.189155910 +0200
@@ -279,9 +279,9 @@
else ifneq ("$(wildcard /etc/redhat-release)","")
ifeq ($(OS_ID),rhel)
@sudo -E yum-config-manager --enable rhel-server-rhscl-7-rpms
- @sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
- @sudo -E yum install $(CONFIRM) $(RPM_DEPENDS)
- @sudo -E debuginfo-install $(CONFIRM) glibc openssl-libs mbedtls-devel zlib
+ @sudo -E yum groupinstall -y $(RPM_DEPENDS_GROUPS)
+ @sudo -E yum install -y $(RPM_DEPENDS)
+ @sudo -E debuginfo-install -y glibc openssl-libs mbedtls-devel zlib
else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8)
@sudo -E dnf install $(CONFIRM) dnf-plugins-core epel-release
@sudo -E dnf config-manager --set-enabled \
<?xml version="1.0" encoding="UTF-8"?>
<dst:devsol xmlns:dst="http://www.developingsolutions.com/schema/dsTest" test_name="Local Library/upf_test_multiple_ue.dsx">
<!-- XML generated by dsClientv5.5.20201109 on 02/24/2021 11:11:24 using dsTest schema v5.5.20210117 -->
<config>
<nodes>
<spr name="spr_gnb">
<auto_start>true</auto_start>
<subscriber_database count="2" name="gnb_subs">
<subscriber_profiles>
<access_profile name="access_profile">
<new_radio_128_nea0_encryption>true</new_radio_128_nea0_encryption>
<new_radio_128_nia1_integrity>true</new_radio_128_nia1_integrity>
<requested_nssai>
<s_nssai>
<sst>222</sst>
<sd>123</sd>
</s_nssai>
<s_nssai>
<sst>75</sst>
<sd>2</sd>
</s_nssai>
</requested_nssai>
<ssc_mode>1</ssc_mode>
</access_profile>
<subscription_profile name="subscription_profile">
<pdu_config>
<context_id>34</context_id>
<type>IPv4</type>
<dnn>default</dnn>
<s_nssai>
<sst>222</sst>
<sd>123</sd>
</s_nssai>
<up_transport_address>172.10.5.1</up_transport_address>
</pdu_config>
</subscription_profile>
<user_data_profile name="user_data_profile_1">
<delay>500</delay>
<basic_data name="basic_data">
<dest_ip>8.8.8.8</dest_ip>
<protocol>UDP</protocol>
<dport>5001</dport>
<sport>5001</sport>
<size>1024</size>
<rate>10</rate>
<auto_start>true</auto_start>
<auto_stop>5000</auto_stop>
</basic_data>
</user_data_profile>
<SmartProfile name="SmartProfile">
<SmartEvents>
<states>
<state start_point="133.6,81.6" width="100.0" height="60.0">idle</state>
<state start_point="366.1,81.6" width="100.0" height="60.0">pdu_setup</state>
<state start_point="510.1,193.6" width="100.0" height="60.0">pdu_delete</state>
<state start_point="381.6,337.6" width="100.0" height="60.0">detach</state>
<state start_point="157.6,341.6" width="100.0" height="60.0">ending</state>
</states>
<event_handlers>
<event_handler start_point="144.1,82.1" end_point="224.1,82.1" height="-68">
<current_state>idle</current_state>
<transaction_start/>
<action>
<app>n2</app>
<event>registration</event>
<node>gnb_1</node>
</action>
</event_handler>
<event_handler start_point="234.1,112.1" end_point="366.6,112.1" height="-92">
<current_state>idle</current_state>
<event_received app="n2" event="registration"/>
<next_state>pdu_setup</next_state>
<timer>2000</timer>
</event_handler>
<event_handler start_point="376.6,82.1" end_point="456.6,82.1" height="-92">
<current_state>pdu_setup</current_state>
<timeout/>
<action>
<app>n2</app>
<event>pdu_session_establish</event>
<node>gnb_1</node>
<dnn>carrier.com</dnn>
</action>
</event_handler>
<event_handler start_point="466.6,112.1" end_point="560.6,194.1" height="-72">
<current_state>pdu_setup</current_state>
<event_received app="n2" event="pdu_session_establish"/>
<next_state>pdu_delete</next_state>
<timer>500000000</timer>
</event_handler>
<event_handler start_point="610.6,204.1" end_point="610.6,244.1" height="68">
<current_state>pdu_delete</current_state>
<timeout/>
<action>
<app>n2</app>
<event>pdu_session_release</event>
<node>gnb_1</node>
<dnn>default</dnn>
</action>
</event_handler>
<event_handler start_point="560.6,254.1" end_point="482.1,368.1" height="-92">
<current_state>pdu_delete</current_state>
<event_received app="n2" event="pdu_session_release"/>
<next_state>detach</next_state>
<timer>2000</timer>
</event_handler>
<event_handler start_point="382.1,368.1" end_point="258.1,372.1" height="-68">
<current_state>detach</current_state>
<timeout/>
<action>
<app>n2</app>
<event>deregistration</event>
<node>gnb_1</node>
</action>
<next_state>ending</next_state>
</event_handler>
<event_handler start_point="208.1,342.1" end_point="184.1,142.1" height="-52">
<current_state>ending</current_state>
<event_received app="n2" event="deregistration"/>
<transaction_complete/>
</event_handler>
<event_handler start_point="109.4,279.0" end_point="134.1,132.1" height="-72">
<current_state>ANY</current_state>
<error/>
<transaction_failed/>
</event_handler>
</event_handlers>
</SmartEvents>
</SmartProfile>
</subscriber_profiles>
<subscriber_group start="1" end="2" name="subscriber_group">
<group_profiles>
<access_profile>access_profile</access_profile>
<subscription_profile>subscription_profile</subscription_profile>
<user_data_profile>user_data_profile_1</user_data_profile>
<SmartProfile>SmartProfile</SmartProfile>
</group_profiles>
<identities>
<imsi>208950000000031</imsi>
<imei>55000000000001</imei>
<key>0x0C0A34601D4F07677303652C0462535B</key>
<opc>0x63bfa50ee6523365ff14c1f45f88737d</opc>
</identities>
<dynamic_information>
<sqn>0x40</sqn>
<vplmn>431-265</vplmn>
<cell_id>1485</cell_id>
</dynamic_information>
</subscriber_group>
</subscriber_database>
</spr>
<gnb name="gnb_1">
<auto_start>true</auto_start>
<n2>
<interface name="interface_1" native="true">
<sctp>
<ip_address>192.168.61.193</ip_address>
<dest_ip_address>192.168.61.195</dest_ip_address>
</sctp>
<user_socket>
<ip_address>192.168.61.193</ip_address>
</user_socket>
</interface>
<user_data>
<basic_data name="basic_data"/>
</user_data>
</n2>
<mcc>208</mcc>
<mnc>95</mnc>
<node_name>gnb-1</node_name>
<global_gnb_id>1048575</global_gnb_id>
<default_paging_drx>v32</default_paging_drx>
<supported_ta>
<tac>0xa000</tac>
<bplmn>
<mcc>208</mcc>
<mnc>95</mnc>
<slice_support_item>
<nssai_sst>222</nssai_sst>
<nssai_sd>123</nssai_sd>
</slice_support_item>
<slice_support_item>
<nssai_sst>0x27</nssai_sst>
<nssai_sd>0x385382</nssai_sd>
</slice_support_item>
</bplmn>
<bplmn>
<mcc>207</mcc>
<mnc>54</mnc>
<slice_support_item>
<nssai_sst>0x10</nssai_sst>
<nssai_sd>0x583922</nssai_sd>
</slice_support_item>
</bplmn>
</supported_ta>
<supported_ta>
<tac>0xa001</tac>
<bplmn>
<mcc>202</mcc>
<mnc>100</mnc>
<slice_support_item>
<nssai_sst>0x23</nssai_sst>
<nssai_sd>0x321236</nssai_sd>
</slice_support_item>
</bplmn>
<bplmn>
<mcc>203</mcc>
<mnc>001</mnc>
<slice_support_item>
<nssai_sst>0xFF</nssai_sst>
<nssai_sd>0x123483</nssai_sd>
</slice_support_item>
</bplmn>
</supported_ta>
<subscriber_database name="gnb_subs"/>
</gnb>
</nodes>
</config>
<command>
<wait>1000</wait>
</command>
<command>
<spr name="spr_gnb">
<action>
<rate>1</rate>
<cycle>1</cycle>
<start>1</start>
<end>2</end>
<ready>gnb_1</ready>
<app>SmartEvents</app>
<event>start</event>
</action>
</spr>
</command>
</dst:devsol>
<?xml version="1.0" encoding="UTF-8"?>
<dst:devsol xmlns:dst="http://www.developingsolutions.com/schema/dsTest" test_name="Local Library/upf_test_multiple_ue.dsx">
<!-- XML generated by dsClientv5.5.20201109 on 02/24/2021 11:11:24 using dsTest schema v5.5.20210117 -->
<config>
<nodes>
<spr name="spr_gnb">
<auto_start>true</auto_start>
<subscriber_database count="2" name="gnb_subs">
<subscriber_profiles>
<access_profile name="access_profile">
<new_radio_128_nea0_encryption>true</new_radio_128_nea0_encryption>
<new_radio_128_nia1_integrity>true</new_radio_128_nia1_integrity>
<requested_nssai>
<s_nssai>
<sst>222</sst>
<sd>123</sd>
</s_nssai>
<s_nssai>
<sst>75</sst>
<sd>2</sd>
</s_nssai>
</requested_nssai>
<ssc_mode>1</ssc_mode>
</access_profile>
<subscription_profile name="subscription_profile">
<pdu_config>
<context_id>34</context_id>
<type>IPv4</type>
<dnn>default</dnn>
<s_nssai>
<sst>222</sst>
<sd>123</sd>
</s_nssai>
<up_transport_address>172.10.5.1</up_transport_address>
</pdu_config>
</subscription_profile>
<user_data_profile name="user_data_profile_1">
<delay>500</delay>
<basic_data name="basic_data">
<dest_ip>8.8.8.8</dest_ip>
<protocol>UDP</protocol>
<dport>5001</dport>
<sport>5001</sport>
<size>1024</size>
<rate>10</rate>
<auto_start>true</auto_start>
<auto_stop>5000</auto_stop>
</basic_data>
</user_data_profile>
<SmartProfile name="SmartProfile">
<SmartEvents>
<states>
<state start_point="133.6,81.6" width="100.0" height="60.0">idle</state>
<state start_point="366.1,81.6" width="100.0" height="60.0">pdu_setup</state>
<state start_point="510.1,193.6" width="100.0" height="60.0">pdu_delete</state>
<state start_point="381.6,337.6" width="100.0" height="60.0">detach</state>
<state start_point="157.6,341.6" width="100.0" height="60.0">ending</state>
</states>
<event_handlers>
<event_handler start_point="144.1,82.1" end_point="224.1,82.1" height="-68">
<current_state>idle</current_state>
<transaction_start/>
<action>
<app>n2</app>
<event>registration</event>
<node>gnb_1</node>
</action>
</event_handler>
<event_handler start_point="234.1,112.1" end_point="366.6,112.1" height="-92">
<current_state>idle</current_state>
<event_received app="n2" event="registration"/>
<next_state>pdu_setup</next_state>
<timer>2000</timer>
</event_handler>
<event_handler start_point="376.6,82.1" end_point="456.6,82.1" height="-92">
<current_state>pdu_setup</current_state>
<timeout/>
<action>
<app>n2</app>
<event>pdu_session_establish</event>
<node>gnb_1</node>
<dnn>carrier.com</dnn>
</action>
</event_handler>
<event_handler start_point="466.6,112.1" end_point="560.6,194.1" height="-72">
<current_state>pdu_setup</current_state>
<event_received app="n2" event="pdu_session_establish"/>
<next_state>pdu_delete</next_state>
<timer>500000000</timer>
</event_handler>
<event_handler start_point="610.6,204.1" end_point="610.6,244.1" height="68">
<current_state>pdu_delete</current_state>
<timeout/>
<action>
<app>n2</app>
<event>pdu_session_release</event>
<node>gnb_1</node>
<dnn>default</dnn>
</action>
</event_handler>
<event_handler start_point="560.6,254.1" end_point="482.1,368.1" height="-92">
<current_state>pdu_delete</current_state>
<event_received app="n2" event="pdu_session_release"/>
<next_state>detach</next_state>
<timer>2000</timer>
</event_handler>
<event_handler start_point="382.1,368.1" end_point="258.1,372.1" height="-68">
<current_state>detach</current_state>
<timeout/>
<action>
<app>n2</app>
<event>deregistration</event>
<node>gnb_1</node>
</action>
<next_state>ending</next_state>
</event_handler>
<event_handler start_point="208.1,342.1" end_point="184.1,142.1" height="-52">
<current_state>ending</current_state>
<event_received app="n2" event="deregistration"/>
<transaction_complete/>
</event_handler>
<event_handler start_point="109.4,279.0" end_point="134.1,132.1" height="-72">
<current_state>ANY</current_state>
<error/>
<transaction_failed/>
</event_handler>
</event_handlers>
</SmartEvents>
</SmartProfile>
</subscriber_profiles>
<subscriber_group start="1" end="2" name="subscriber_group">
<group_profiles>
<access_profile>access_profile</access_profile>
<subscription_profile>subscription_profile</subscription_profile>
<user_data_profile>user_data_profile_1</user_data_profile>
<SmartProfile>SmartProfile</SmartProfile>
</group_profiles>
<identities>
<imsi>208950000000031</imsi>
<imei>55000000000001</imei>
<key>0x0C0A34601D4F07677303652C0462535B</key>
<opc>0x63bfa50ee6523365ff14c1f45f88737d</opc>
</identities>
<dynamic_information>
<sqn>0x40</sqn>
<vplmn>431-265</vplmn>
<cell_id>1485</cell_id>
</dynamic_information>
</subscriber_group>
</subscriber_database>
</spr>
<gnb name="gnb_1">
<auto_start>true</auto_start>
<n2>
<interface name="interface_1" native="true">
<sctp>
<ip_address>192.168.61.193</ip_address>
<dest_ip_address>192.168.61.195</dest_ip_address>
</sctp>
<user_socket>
<ip_address>192.168.61.193</ip_address>
</user_socket>
</interface>
<user_data>
<basic_data name="basic_data"/>
</user_data>
</n2>
<mcc>208</mcc>
<mnc>95</mnc>
<node_name>gnb-1</node_name>
<global_gnb_id>1048575</global_gnb_id>
<default_paging_drx>v32</default_paging_drx>
<supported_ta>
<tac>0xa000</tac>
<bplmn>
<mcc>208</mcc>
<mnc>95</mnc>
<slice_support_item>
<nssai_sst>222</nssai_sst>
<nssai_sd>123</nssai_sd>
</slice_support_item>
<slice_support_item>
<nssai_sst>0x27</nssai_sst>
<nssai_sd>0x385382</nssai_sd>
</slice_support_item>
</bplmn>
<bplmn>
<mcc>207</mcc>
<mnc>54</mnc>
<slice_support_item>
<nssai_sst>0x10</nssai_sst>
<nssai_sd>0x583922</nssai_sd>
</slice_support_item>
</bplmn>
</supported_ta>
<supported_ta>
<tac>0xa001</tac>
<bplmn>
<mcc>202</mcc>
<mnc>100</mnc>
<slice_support_item>
<nssai_sst>0x23</nssai_sst>
<nssai_sd>0x321236</nssai_sd>
</slice_support_item>
</bplmn>
<bplmn>
<mcc>203</mcc>
<mnc>001</mnc>
<slice_support_item>
<nssai_sst>0xFF</nssai_sst>
<nssai_sd>0x123483</nssai_sd>
</slice_support_item>
</bplmn>
</supported_ta>
<subscriber_database name="gnb_subs"/>
</gnb>
</nodes>
</config>
<command>
<wait>1000</wait>
</command>
<command>
<spr name="spr_gnb">
<action>
<rate>1</rate>
<cycle>1</cycle>
<start>1</start>
<end>2</end>
<ready>gnb_1</ready>
<app>SmartEvents</app>
<event>start</event>
</action>
</spr>
</command>
</dst:devsol>
version: '3.8'
services:
mysql:
container_name: vpptest-mysql
image: mysql:5.7
volumes:
- ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
environment:
- TZ=Europe/Paris
- MYSQL_DATABASE=oai_db
- MYSQL_USER=test
- MYSQL_PASSWORD=test
- MYSQL_ROOT_PASSWORD=linux
healthcheck:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks:
macvlan_net:
ipv4_address: 192.168.74.200
oai-smf:
image: oai-smf:vpp-upf
container_name: vpptest-oai-smf
privileged: true
networks:
macvlan_net:
ipv4_address: 192.168.74.196
environment:
INSTANCE: 1
PID_DIRECTORY: /var/run
SMF_INTERFACE_NAME_FOR_N4: eth0
SMF_INTERFACE_NAME_FOR_SBI: eth0
SMF_INTERFACE_PORT_FOR_SBI: 80
SMF_INTERFACE_HTTP2_PORT_FOR_SBI: 8080
SMF_API_VERSION: v1
DEFAULT_DNS_IPV4_ADDRESS: 8.8.8.8
DEFAULT_DNS_SEC_IPV4_ADDRESS: 8.8.4.4
UE_IP_ADDRESS_POOL: '10.1.1.2 - 10.1.1.200'
AMF_IPV4_ADDRESS: 192.168.74.195
AMF_PORT: 80
AMF_API_VERSION: v1
UDM_IPV4_ADDRESS: 192.168.74.194
UDM_PORT: 80
UDM_API_VERSION: v1
UPF_IPV4_ADDRESS: 192.168.74.202
USE_NETWORK_INSTANCE: 'yes'
DISCOVER_UPF: 'no'
NRF_API_VERSION: 'v1'
NRF_IPV4_ADDRESS: '127.0.0.1'
NRF_PORT: '8080'
REGISTER_NRF: 'no'
healthcheck:
test: /bin/bash -c "pgrep oai_smf"
interval: 10s
timeout: 5s
retries: 5
extra_hosts:
- "gw1.vppupf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.74.202"
oai-amf:
image: oai-amf:develop
container_name: vpptest-oai-amf
privileged: true
networks:
macvlan_net:
ipv4_address: 192.168.74.195
environment:
INSTANCE: 1
PID_DIRECTORY: /var/run
MCC: '208'
MNC: '95'
REGION_ID: '128'
AMF_SET_ID: 1
SERVED_GUAMI_MCC_0: '208'
SERVED_GUAMI_MCC_1: '460'
SERVED_GUAMI_MNC_0: '95'
SERVED_GUAMI_MNC_1: '11'
SERVED_GUAMI_REGION_ID_0: '95'
SERVED_GUAMI_REGION_ID_1: '11'
SERVED_GUAMI_AMF_SET_ID_0: '1'
SERVED_GUAMI_AMF_SET_ID_1: '1'
PLMN_SUPPORT_MCC: '208'
PLMN_SUPPORT_MNC: '95'
PLMN_SUPPORT_TAC: '0xa000'
SST_0: '222'
SST_1: '1'
SD_0: '123'
SD_1: '12'
SMF_SELECTION: 'no'
SMF_INSTANCE_ID_0: 1
SMF_INSTANCE_ID_1: 2
SMF_IPV4_ADDR_0: 192.168.74.196
SMF_IPV4_ADDR_1: 127.0.0.1
SMF_HTTP_VERSION_0: v1
SMF_HTTP_VERSION_1: v1
AMF_INTERFACE_NAME_FOR_NGAP: eth0
AMF_INTERFACE_NAME_FOR_N11: eth0
AUSF_IPV4_ADDRESS: 192.168.74.205
AUSF_API_VERSION: 'v1'
AUSF_PORT: 80
NRF_IPV4_ADDRESS: 192.168.74.206
NRF_API_VERSION: 'v1'
NRF_PORT: 80
MYSQL_SERVER: 192.168.74.200
MYSQL_USER: 'root'
MYSQL_PASS: 'linux'
MYSQL_DB: 'oai_db'
OPERATOR_KEY: '63bfa50ee6523365ff14c1f45f88737d'
NF_REGISTRATION: 'no'
healthcheck:
test: /bin/bash -c "pgrep oai_smf"
interval: 10s
timeout: 5s
retries: 5
oai-vpp:
image: vpp-upg:latest
privileged: true
container_name: vpptest-oai-vpp-upf
networks:
macvlan_net:
ipv4_address: 192.168.75.197
macvlan_net:
ipv4_address: 192.168.74.197
macvlan_net:
ipv4_address: 192.168.76.197
environment:
NWI_CORE : "core.oai"
NWI_ACCESS : "access.oai"
NWI_SGI : "sgi.oai"
# NWI_SGI_SEC: "sgi.secondary.oai" # To Do - Traffic sterring or traffic redirection or I-UPF (N9)
GW_ID: "1"
MNC03: "95"
MCC : "208"
REALM: "3gppnetwork.org"
NETWORK_UE_IP: "12.1.1.0/24"
N3_IPV4_ADDRESS_REMOTE: "192.168.75.198"
N3_IPV4_ADDRESS_LOCAL : "192.168.75.202"
N4_IPV4_ADDRESS_REMOTE: "192.168.74.196"
N4_IPV4_ADDRESS_LOCAL : "192.168.74.202"
N6_IPV4_ADDRESS_REMOTE: "192.168.76.205"
N6_IPV4_ADDRESS_LOCAL : "192.168.76.202"
VPP_MAIN_CORE : 0
VPP_CORE_WORKER: 1
oai-spgwu:
image: oai-spgwu-tiny:gtp_ext_header
privileged: true
container_name: oai-spgwu
networks:
macvlan_net:
ipv4_address: 192.168.74.199
environment:
INSTANCE: 1
PID_DIRECTORY: /var/run
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP: "eth0"
SGW_INTERFACE_NAME_FOR_SX: "eth0"
PGW_INTERFACE_NAME_FOR_SGI: "eth0"
SPGWC0_IP_ADDRESS: "192.168.74.196"
NETWORK_UE_IP: "10.1.1.0/24"
NETWORK_UE_NAT_OPTION: "yes"
NRF_IPV4_ADDRESS: "192.168.1.23"
NRF_PORT: "8080"
NRF_API_VERSION: "v1"
GW_ID: "1"
MNC03: "95"
MCC: "208"
REALM: "3gppnetwork.org"
THREAD_S1U_PRIO: "64"
S1U_THREADS: "16"
THREAD_SX_PRIO: "64"
SX_THREADS: "1"
THREAD_SGI_PRIO: "64"
SGI_THREADS: "16"
GTP_EXTENSION_HEADER_PRESENT: "no"
BYPASS_UL_PFCP_RULES: "no"
oai-nat:
image: ubuntu:bionic
privileged: true
container_name: vpptest-oai-nat
networks:
macvlan_net:
ipv4_address: 192.168.74.205
macvlan_net:
ipv4_address: 192.168.76.205
entrypoint: /bin/bash -c \
"apt update; apt install -y iptables iproute2 iputils-ping net-tools python iperf3;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 10.1.1.0/24 via 192.168.74.199 dev eth0;"\
"ip route add 12.1.1.0/24 via 192.168.76.201 dev eth1; sleep infinity"
gnbsim:
image: gnbsim:latest
privileged: true
container_name: vpptest-gnbsim
environment:
MCC: 208
MNC: 95
GNBID: 1
TAC: '0x00a000'
SST: '222'
SD: '010203'
SD_UE_PARAM: '00007b'
PagingDRX: 'v32'
RANUENGAPID: 0
IMEISV: '35609204079514'
MSIN: '0000000031'
RoutingIndicator: 1234
ProtectionScheme: 'null'
KEY: '0C0A34601D4F07677303652C0462535B'
OPc: '63bfa50ee6523365ff14c1f45f88737d'
DNN: 'default'
URL: 'http://192.168.76.205:8000'
NRCellID: 1
NGAPPeerAddr: '192.168.74.195'
GTPuLocalAddr: '192.168.75.198'
GTPuIFname: 'eth0'
networks:
macvlan_net:
ipv4_address: 192.168.74.198
macvlan_net:
ipv4_address: 192.168.75.198
volumes:
- ./lib/modules/4.15.0-76-generic/kernel/drivers/net/gtp.ko:/lib/modules/5.8.0-43-generic/kernel/drivers/net/gtp.ko
networks:
# public_net:
# name: oai-public-net
# ipam:
# config:
# - subnet: 192.168.74.0/24
# public_net_access:
# name: oai-public-access
# ipam:
# config:
# - subnet: 192.168.75.0/24
# public_net_sgi_lan:
# name: oai-public-sgi-lan
# ipam:
# config:
# - subnet: 192.168.76.0/24
macvlan_net:
external:
name: oairohan
#!/bin/bash
set -eo pipefail
if [ "$MYSQL_ROOT_PASSWORD" ] && [ -z "$MYSQL_USER" ] && [ -z "$MYSQL_PASSWORD" ]; then
echo >&2 'Healthcheck error: cannot determine root password (and MYSQL_USER and MYSQL_PASSWORD were not set)'
exit 0
fi
host="$(hostname --ip-address || echo '127.0.0.1')"
user="${MYSQL_USER:-root}"
export MYSQL_PWD="${MYSQL_PASSWORD:-$MYSQL_ROOT_PASSWORD}"
args=(
# force mysql to not use the local "mysqld.sock" (test "external" connectivity)
-h"$host"
-u"$user"
--silent
)
STATUS=0
if command -v mysqladmin &> /dev/null; then
if mysqladmin "${args[@]}" ping > /dev/null; then
database_check=$(mysql -u$user -D oai_db --silent -e "SELECT * FROM users;")
if [[ -z $database_check ]]; then
echo "Healthcheck error: oai_db not populated"
STATUS=1
fi
STATUS=0
else
echo "Healthcheck error: Mysql port inactive"
STATUS=1
fi
else
if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
database_check=$(mysql -u$user -D oai_db --silent -e "SELECT * FROM users;")
if [[ -z $database_check ]]; then
echo "Healthcheck error: oai_db not populated"
STATUS=1
fi
STATUS=0
else
echo "Healthcheck error: Mysql port inactive"
STATUS=1
fi
fi
exit $STATUS
-- MySQL dump 10.13 Distrib 5.5.46, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database: oai_db
-- ------------------------------------------------------
-- Server version 5.5.46-0ubuntu0.14.04.2
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `apn`
--
DROP TABLE IF EXISTS `apn`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `apn` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`apn-name` varchar(60) NOT NULL,
`pdn-type` enum('IPv4','IPv6','IPv4v6','IPv4_or_IPv6') NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `apn-name` (`apn-name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `apn`
--
LOCK TABLES `apn` WRITE;
/*!40000 ALTER TABLE `apn` DISABLE KEYS */;
/*!40000 ALTER TABLE `apn` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `mmeidentity`
--
DROP TABLE IF EXISTS `mmeidentity`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `mmeidentity` (
`idmmeidentity` int(11) NOT NULL AUTO_INCREMENT,
`mmehost` varchar(255) DEFAULT NULL,
`mmerealm` varchar(200) DEFAULT NULL,
`UE-Reachability` tinyint(1) NOT NULL COMMENT 'Indicates whether the MME supports UE Reachability Notifcation',
PRIMARY KEY (`idmmeidentity`)
) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `mmeidentity`
--
LOCK TABLES `mmeidentity` WRITE;
/*!40000 ALTER TABLE `mmeidentity` DISABLE KEYS */;
INSERT INTO `mmeidentity` VALUES (2,'mme2.openair4G.eur','openair4G.eur',0),(1,'nano.openair4G.eur','openair4G.eur',0),(5,'abeille.openair4G.eur','openair4G.eur',0),(4,'yang.openair4G.eur','openair4G.eur',0),(3,'mme3.openair4G.eur','openair4G.eur',0),(6,'calisson.openair4G.eur','openair4G.eur',0);
/*!40000 ALTER TABLE `mmeidentity` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `pdn`
--
DROP TABLE IF EXISTS `pdn`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `pdn` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`apn` varchar(60) NOT NULL,
`pdn_type` enum('IPv4','IPv6','IPv4v6','IPv4_or_IPv6') NOT NULL DEFAULT 'IPv4',
`pdn_ipv4` varchar(15) DEFAULT '0.0.0.0',
`pdn_ipv6` varchar(45) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT '0:0:0:0:0:0:0:0',
`aggregate_ambr_ul` int(10) unsigned DEFAULT '50000000',
`aggregate_ambr_dl` int(10) unsigned DEFAULT '100000000',
`pgw_id` int(11) NOT NULL,
`users_imsi` varchar(15) NOT NULL,
`qci` tinyint(3) unsigned NOT NULL DEFAULT '9',
`priority_level` tinyint(3) unsigned NOT NULL DEFAULT '15',
`pre_emp_cap` enum('ENABLED','DISABLED') DEFAULT 'DISABLED',
`pre_emp_vul` enum('ENABLED','DISABLED') DEFAULT 'DISABLED',
`LIPA-Permissions` enum('LIPA-prohibited','LIPA-only','LIPA-conditional') NOT NULL DEFAULT 'LIPA-only',
PRIMARY KEY (`id`,`pgw_id`,`users_imsi`),
KEY `fk_pdn_pgw1_idx` (`pgw_id`),
KEY `fk_pdn_users1_idx` (`users_imsi`)
) ENGINE=MyISAM AUTO_INCREMENT=60 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `pdn`
--
LOCK TABLES `pdn` WRITE;
/*!40000 ALTER TABLE `pdn` DISABLE KEYS */;
INSERT INTO `pdn` VALUES (1,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000001',9,15,'DISABLED','ENABLED','LIPA-only'),(41,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'20834123456789',9,15,'DISABLED','ENABLED','LIPA-only'),(40,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'20810000001234',9,15,'DISABLED','ENABLED','LIPA-only'),(42,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'31002890832150',9,15,'DISABLED','ENABLED','LIPA-only'),(16,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000002',9,15,'DISABLED','ENABLED','LIPA-only'),(43,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'001010123456789',9,15,'DISABLED','ENABLED','LIPA-only'),(2,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000002',9,15,'DISABLED','ENABLED','LIPA-only'),(3,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000003',9,15,'DISABLED','ENABLED','LIPA-only'),(4,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000004',9,15,'DISABLED','ENABLED','LIPA-only'),(5,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000005',9,15,'DISABLED','ENABLED','LIPA-only'),(6,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000006',9,15,'DISABLED','ENABLED','LIPA-only'),(7,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000007',9,15,'DISABLED','ENABLED','LIPA-only'),(8,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000001',9,15,'DISABLED','ENABLED','LIPA-only'),(9,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000002',9,15,'DISABLED','ENABLED','LIPA-only'),(10,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000003',9,15,'DISABLED','ENABLED','LIPA-only'),(11,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000004',9,15,'DISABLED','ENABLED','LIPA-only'),(12,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000005',9,15,'DISABLED','ENABLED','LIPA-only'),(13,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000006',9,15,'DISABLED','ENABLED','LIPA-only'),(14,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000007',9,15,'DISABLED','ENABLED','LIPA-only'),(15,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000001',9,15,'DISABLED','ENABLED','LIPA-only'),(17,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000003',9,15,'DISABLED','ENABLED','LIPA-only'),(18,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000004',9,15,'DISABLED','ENABLED','LIPA-only'),(19,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000005',9,15,'DISABLED','ENABLED','LIPA-only'),(20,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000006',9,15,'DISABLED','ENABLED','LIPA-only'),(21,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000007',9,15,'DISABLED','ENABLED','LIPA-only'),(22,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001100',9,15,'DISABLED','ENABLED','LIPA-only'),(23,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001101',9,15,'DISABLED','ENABLED','LIPA-only'),(24,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001102',9,15,'DISABLED','ENABLED','LIPA-only'),(25,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001103',9,15,'DISABLED','ENABLED','LIPA-only'),(26,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001104',9,15,'DISABLED','ENABLED','LIPA-only'),(27,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001105',9,15,'DISABLED','ENABLED','LIPA-only'),(28,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001106',9,15,'DISABLED','ENABLED','LIPA-only'),(29,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001107',9,15,'DISABLED','ENABLED','LIPA-only'),(30,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001108',9,15,'DISABLED','ENABLED','LIPA-only'),(31,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001109',9,15,'DISABLED','ENABLED','LIPA-only'),(32,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001110',9,15,'DISABLED','ENABLED','LIPA-only'),(33,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001111',9,15,'DISABLED','ENABLED','LIPA-only'),(34,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001112',9,15,'DISABLED','ENABLED','LIPA-only'),(35,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001113',9,15,'DISABLED','ENABLED','LIPA-only'),(44,'operator','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001113',9,15,'DISABLED','ENABLED','LIPA-only'),(45,'operator','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001112',9,15,'DISABLED','ENABLED','LIPA-only'),(46,'operator','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001111',9,15,'DISABLED','ENABLED','LIPA-only'),(47,'operator','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000002',9,15,'DISABLED','ENABLED','LIPA-only'),(48,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000008',9,15,'DISABLED','ENABLED','LIPA-only'),(49,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000009',9,15,'DISABLED','ENABLED','LIPA-only'),(50,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000010',9,15,'DISABLED','ENABLED','LIPA-only'),(51,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000011',9,15,'DISABLED','ENABLED','LIPA-only'),(52,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000012',9,15,'DISABLED','ENABLED','LIPA-only'),(53,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000013',9,15,'DISABLED','ENABLED','LIPA-only'),(54,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000014',9,15,'DISABLED','ENABLED','LIPA-only'),(55,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000015',9,15,'DISABLED','ENABLED','LIPA-only'),(56,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001118',9,15,'DISABLED','ENABLED','LIPA-only'),(57,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001121',9,15,'DISABLED','ENABLED','LIPA-only'),(58,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001120',9,15,'DISABLED','ENABLED','LIPA-only'),(59,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001119',9,15,'DISABLED','ENABLED','LIPA-only');
/*!40000 ALTER TABLE `pdn` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `pgw`
--
DROP TABLE IF EXISTS `pgw`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `pgw` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ipv4` varchar(15) NOT NULL,
`ipv6` varchar(39) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ipv4` (`ipv4`),
UNIQUE KEY `ipv6` (`ipv6`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `pgw`
--
LOCK TABLES `pgw` WRITE;
/*!40000 ALTER TABLE `pgw` DISABLE KEYS */;
INSERT INTO `pgw` VALUES (1,'127.0.0.1','0:0:0:0:0:0:0:1'),(2,'192.168.56.101',''),(3,'10.0.0.2','0');
/*!40000 ALTER TABLE `pgw` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `terminal-info`
--
DROP TABLE IF EXISTS `terminal-info`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `terminal-info` (
`imei` varchar(15) NOT NULL,
`sv` varchar(2) NOT NULL,
UNIQUE KEY `imei` (`imei`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `terminal-info`
--
LOCK TABLES `terminal-info` WRITE;
/*!40000 ALTER TABLE `terminal-info` DISABLE KEYS */;
/*!40000 ALTER TABLE `terminal-info` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `users`
--
DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `users` (
`imsi` varchar(15) NOT NULL COMMENT 'IMSI is the main reference key.',
`msisdn` varchar(46) DEFAULT NULL COMMENT 'The basic MSISDN of the UE (Presence of MSISDN is optional).',
`imei` varchar(15) DEFAULT NULL COMMENT 'International Mobile Equipment Identity',
`imei_sv` varchar(2) DEFAULT NULL COMMENT 'International Mobile Equipment Identity Software Version Number',
`ms_ps_status` enum('PURGED','NOT_PURGED') DEFAULT 'PURGED' COMMENT 'Indicates that ESM and EMM status are purged from MME',
`rau_tau_timer` int(10) unsigned DEFAULT '120',
`ue_ambr_ul` bigint(20) unsigned DEFAULT '50000000' COMMENT 'The Maximum Aggregated uplink MBRs to be shared across all Non-GBR bearers according to the subscription of the user.',
`ue_ambr_dl` bigint(20) unsigned DEFAULT '100000000' COMMENT 'The Maximum Aggregated downlink MBRs to be shared across all Non-GBR bearers according to the subscription of the user.',
`access_restriction` int(10) unsigned DEFAULT '60' COMMENT 'Indicates the access restriction subscription information. 3GPP TS.29272 #7.3.31',
`mme_cap` int(10) unsigned zerofill DEFAULT NULL COMMENT 'Indicates the capabilities of the MME with respect to core functionality e.g. regional access restrictions.',
`mmeidentity_idmmeidentity` int(11) NOT NULL DEFAULT '0',
`key` varbinary(16) NOT NULL DEFAULT '0' COMMENT 'UE security key',
`RFSP-Index` smallint(5) unsigned NOT NULL DEFAULT '1' COMMENT 'An index to specific RRM configuration in the E-UTRAN. Possible values from 1 to 256',
`urrp_mme` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'UE Reachability Request Parameter indicating that UE activity notification from MME has been requested by the HSS.',
`sqn` bigint(20) unsigned zerofill NOT NULL,
`rand` varbinary(16) NOT NULL,
`OPc` varbinary(16) DEFAULT NULL COMMENT 'Can be computed by HSS',
PRIMARY KEY (`imsi`,`mmeidentity_idmmeidentity`),
KEY `fk_users_mmeidentity_idx1` (`mmeidentity_idmmeidentity`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `users`
--
LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` VALUES ('20834123456789','380561234567','35609204079300',NULL,'PURGED',50,40000000,100000000,47,0000000000,1,'+Eų\0,IHH',0,0,00000000000000000096,'PxX \Z1x','^KFeU'),('20810000001234','33611123456','35609204079299',NULL,'PURGED',120,40000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000281454575616225,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','4s@z~'),('31002890832150','33638060059','35611302209414',NULL,'PURGED',120,40000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012416,'`F݆Dϛ','4s@z~'),('001010123456789','33600101789','35609204079298',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'\0 \n \r',1,0,00000000000000000351,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','L*\\^] '),('208930000000001','33638030001','35609204079301',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208950000000002','33638050002','35609204079502',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000020471,'\0 \n \r','4s@z~'),('208950000000003','33638050003','35609204079503',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012343,'\0 \n \r','4s@z~'),('208950000000004','33638050004','35609204079504',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000005','33638050005','35609204079505',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000001','33638050001','35609204079501',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208950000000006','33638050006','35609204079506',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000007','33638050007','35609204079507',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208930000000002','33638030002','35609204079302',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208930000000003','33638030003','35609204079303',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208930000000004','33638030004','35609204079304',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208930000000005','33638030005','35609204079305',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208930000000006','33638030006','35609204079306',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208930000000007','33638030007','35609204079307',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208940000000007','33638040007','35609204079407',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208940000000006','33638040006','35609204079406',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208940000000005','33638040005','35609204079405',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208940000000004','33638040004','35609204079404',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208940000000003','33638040003','35609204079403',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208940000000002','33638040002','35609204079402',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208940000000001','33638040001','35609204079401',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWЁZ]','4s@z~'),('208920100001100','33638020001','35609204079201',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001101','33638020001','35609204079201',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204937234,'\0 \n \r','$I6;+fku|'),('208920100001102','33638020002','35609204079202',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001103','33638020003','35609204079203',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001104','33638020004','35609204079204',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001105','33638020005','35609204079205',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001106','33638020006','35609204079206',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000000000000006103,'ebd07771ace8677a','$I6;+fku|'),('208920100001107','33638020007','35609204079207',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001108','33638020008','35609204079208',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001109','33638020009','35609204079209',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001110','33638020010','35609204079210',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208930100001111','33638030011','35609304079211',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208930100001112','33638030012','35609304079212',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208930100001113','33638030013','35609304079213',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006263,'SNܒIve6','4s@z~'),('208950000000008','33638050008','35609204079508',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000009','33638050009','35609204079509',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000010','33638050010','35609204079510',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000011','33638050011','35609204079511',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000012','33638050012','35609204079512',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000013','33638050013','35609204079513',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000014','33638050014','35609204079514',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000015','33638050015','35609204079515',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000000000,'3536663032363164','4s@z~'),('208920100001118','33638020010','35609204079210',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204934762,'~?03u-%eyy','$I6;+fku|'),('208920100001121','33638020010','35609204079210',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204935293,'&@xg]\nVp','$I6;+fku|'),('208920100001119','33638020010','35609204079210',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204935293,'269482407867805d','$I6;+fku|'),('208920100001120','33638020010','35609204079210',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204935293,'3236393438323430','$I6;+fku|');
INSERT INTO `users` VALUES ('208950000000031','380561234567','55000000000001',NULL,'PURGED',50,40000000,100000000,47,0000000000,1,0x0C0A34601D4F07677303652C0462535B,0,0,0x40,'ebd07771ace8677a',0x63bfa50ee6523365ff14c1f45f88737d);
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2016-06-28 11:41:40
......@@ -21,7 +21,6 @@ services:
networks:
public_net:
ipv4_address: 192.168.74.200
oai-smf:
image: oai-smf:vpp-upf
depends_on: [oai-vpp]
......@@ -61,8 +60,6 @@ services:
retries: 5
extra_hosts:
- "gw1.vppupf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.74.202"
- "gw1.spgw.node.epc.mnc95.mcc208.3gppnetwork.org:192.168.74.199"
oai-amf:
image: oai-amf:develop
depends_on: [oai-smf, mysql]
......@@ -119,9 +116,8 @@ services:
interval: 10s
timeout: 5s
retries: 5
oai-vpp:
image: vpp-upg:latest
image: vpp-upg:develop
privileged: true
container_name: vpp-upf
networks:
......@@ -135,7 +131,6 @@ services:
NWI_CORE : "core.oai"
NWI_ACCESS : "access.oai"
NWI_SGI : "sgi.oai"
# NWI_SGI_SEC: "sgi.secondary.oai" # To Do - Traffic sterring or traffic redirection or I-UPF (N9)
GW_ID: "1"
MNC03: "95"
MCC : "208"
......@@ -151,44 +146,14 @@ services:
VPP_CORE_WORKER: 1
# VPP_PLUGIN_PATH: "/usr/lib64/vpp_plugins/" # RHEL7
VPP_PLUGIN_PATH: "/usr/lib/x86_64-linux-gnu/vpp_plugins/" # Ubntu18.04
INTERFACE_ACCESS: "eth0"
INTERFACE_CORE: "eth1"
INTERFACE_SGI: "eth2"
healthcheck:
test: /bin/bash -c "pgrep vpp"
interval: 10s
timeout: 5s
retries: 5
oai-spgwu:
image: oai-spgwu-tiny:gtp_ext_header
privileged: true
container_name: oai-spgwu
networks:
public_net:
ipv4_address: 192.168.74.199
environment:
INSTANCE: 1
PID_DIRECTORY: /var/run
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP: "eth0"
SGW_INTERFACE_NAME_FOR_SX: "eth0"
PGW_INTERFACE_NAME_FOR_SGI: "eth0"
SPGWC0_IP_ADDRESS: "192.168.74.196"
NETWORK_UE_IP: "10.1.1.0/24"
NETWORK_UE_NAT_OPTION: "yes"
NRF_IPV4_ADDRESS: "192.168.1.23"
NRF_PORT: "8080"
NRF_API_VERSION: "v1"
GW_ID: "1"
MNC03: "95"
MCC: "208"
REALM: "3gppnetwork.org"
THREAD_S1U_PRIO: "64"
S1U_THREADS: "16"
THREAD_SX_PRIO: "64"
SX_THREADS: "1"
THREAD_SGI_PRIO: "64"
SGI_THREADS: "16"
GTP_EXTENSION_HEADER_PRESENT: "no"
BYPASS_UL_PFCP_RULES: "no"
retries: 5
oai-nat:
image: ubuntu:bionic
privileged: true
......@@ -201,9 +166,7 @@ services:
entrypoint: /bin/bash -c \
"apt update; apt install -y iptables iproute2 iputils-ping net-tools python iperf3;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 10.1.1.0/24 via 192.168.74.199 dev eth0;"\
"ip route add 12.1.1.0/24 via 192.168.76.201 dev eth1; sleep infinity"
"ip route add 12.1.1.0/24 via 192.168.76.202 dev eth1; sleep infinity"
gnbsim:
image: gnbsim:latest
depends_on: [oai-amf]
......@@ -215,8 +178,7 @@ services:
GNBID: 1
TAC: '0x00a000'
SST: '222'
SD: '010203'
SD_UE_PARAM: '00007b'
SD: '00007b'
PagingDRX: 'v32'
RANUENGAPID: 0
IMEISV: '35609204079514'
......
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