This software provides a C implementation of S-GW, P-GW or a combined version of the both SAE-GW. It is a fork of the nwEPC provided by Amit Chawre (original Readme)
This software has been tested on Ubuntu 16.04 and previously on Ubuntu 14.04. It should work on any linux system. The only dependency is libevent. Systemd is recomended and multiple init scripts are provided. To build the binary, additional tools are required.
# apt-get install build-essential m4 libtool autoconf libevent-dev
# apt-get install libevent-2.0-5
The build process follows the normal autotools workflow
$ libtoolize -i
$ autoreconf -i
$ ./configure --prefix=/usr # This is required for systemd unit files
$ make
$ sudo make install
It is also possible to use checkinstall for installing and building a deb package
$ sudo checkinstall # Install and build package
$ sudo checkinstall --install=no # Only build package
To installation adds the necessary unit files to configure the services as deamons in Systemd, this files are:
Folder /etc/systemd/network/
:
sgi0.netdev
: tun device definition for SGi interfacesgi0.network
: network configuration for SGi interface
Folder /lib/systemd/system/
:
sgw.service
: unit describing the S-GW daemonpgw.service
: unit describing the P-GW daemonspgw.service
: unit describing the S/P-GW daemon
Folder /etc/conf.d/iproute2/
:
pgw.iproute2.start
: P-GW configuration setuppgw.iproute2.stop
: P-GW configuration clean
Folder /etc/aalto/
:
sgw.cfg.template
: configuration template for S-GWpgw.cfg.template
: configuration template for P-GWspgw.cfg.template
: configuration template for S/P-GW
The configuration of the services is done on the configuration files located on /etc/aalto/
. This are the only files a user should modify. Fill the configuration files and remove the template extention.
- After installing the software, make sure systemd reloads the new unit files:
# systemctl daemon-reload
- Enable and start the network to add the new devices (only required for P-GW functionality):
# systemctl enable systemd-networkd
# systemctl start systemd-networkd
- Enable the required services sgw|pgw|spgw to start them on boot , i.e.
# systemctl enable sgw
- Start the service
# systemctl start sgw|pgw|spgw
- Check the logs
# journalctl -n100f -u sgw|pgw|spgw
S-GW:
- S1 (GTP-U)
- S11
- S5/S8
P-GW:
- S5/S8 user plane (GTP-U)
- S5/S8 controll plane,
- SGi with all the PDN parameters (APN, UE IP subnet, DNS, MTU, etc.)
S/P-GW: all the previous ones