mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-ggsn.git
synced 2025-11-13 18:36:22 +00:00
Compare commits
9 Commits
keith/defa
...
1.6.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2154607fb0 | ||
|
|
d08a15b343 | ||
|
|
4e37fb356a | ||
|
|
6a8a389c47 | ||
|
|
569e46cbf9 | ||
|
|
91d9410157 | ||
|
|
065ddb6416 | ||
|
|
53244a2132 | ||
|
|
db98f309a9 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -16,7 +16,6 @@ install-sh
|
||||
libtool
|
||||
ltmain.sh
|
||||
missing
|
||||
osmo-ggsn.spec
|
||||
stamp-h1
|
||||
INSTALL
|
||||
m4/
|
||||
@@ -80,3 +79,5 @@ doc/manuals/generated/
|
||||
doc/manuals/osmomsc-usermanual.xml
|
||||
doc/manuals/common
|
||||
doc/manuals/build
|
||||
|
||||
contrib/osmo-ggsn.spec
|
||||
|
||||
10
Makefile.am
10
Makefile.am
@@ -10,7 +10,15 @@ $(top_srcdir)/.version:
|
||||
dist-hook:
|
||||
echo $(VERSION) > $(distdir)/.tarball-version
|
||||
|
||||
EXTRA_DIST = git-version-gen .version README.md README.FreeBSD README.MacOSX
|
||||
EXTRA_DIST = \
|
||||
.version \
|
||||
README.FreeBSD \
|
||||
README.MacOSX \
|
||||
README.md \
|
||||
contrib/osmo-ggsn.spec.in \
|
||||
debian \
|
||||
git-version-gen \
|
||||
$(NULL)
|
||||
|
||||
AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
|
||||
|
||||
@@ -259,11 +259,11 @@ AC_CONFIG_FILES([Makefile
|
||||
doc/manuals/Makefile
|
||||
contrib/Makefile
|
||||
contrib/systemd/Makefile
|
||||
contrib/osmo-ggsn.spec
|
||||
tests/Makefile
|
||||
tests/lib/Makefile
|
||||
tests/gtp/Makefile
|
||||
libgtp.pc
|
||||
osmo-ggsn.spec])
|
||||
libgtp.pc])
|
||||
AC_OUTPUT
|
||||
|
||||
echo "
|
||||
|
||||
123
contrib/osmo-ggsn.spec.in
Normal file
123
contrib/osmo-ggsn.spec.in
Normal file
@@ -0,0 +1,123 @@
|
||||
#
|
||||
# spec file for package osmo-ggsn
|
||||
#
|
||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
## Disable LTO for now since it breaks compilation of the tests
|
||||
## https://osmocom.org/issues/4114
|
||||
%define _lto_cflags %{nil}
|
||||
|
||||
Name: osmo-ggsn
|
||||
Version: @VERSION@
|
||||
Release: 0
|
||||
Summary: GPRS Support Node
|
||||
License: GPL-2.0-only AND LGPL-2.1-or-later
|
||||
Group: Productivity/Telephony/Servers
|
||||
URL: https://osmocom.org/projects/openggsn
|
||||
Source: %{name}-%{version}.tar.xz
|
||||
BuildRequires: libtool >= 2
|
||||
BuildRequires: pkgconfig >= 0.20
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires: systemd-rpm-macros
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libgtpnl) >= 1.0.0
|
||||
BuildRequires: pkgconfig(libmnl) >= 1.0.3
|
||||
BuildRequires: pkgconfig(libosmocore) >= 1.1.0
|
||||
BuildRequires: pkgconfig(libosmoctrl) >= 1.1.0
|
||||
BuildRequires: pkgconfig(libosmovty) >= 1.1.0
|
||||
Obsoletes: openggsn
|
||||
%{?systemd_requires}
|
||||
|
||||
%description
|
||||
Osmo-GGSN is a C-language implementation of a GGSN (Gateway GPRS
|
||||
Support Node), a core network element of ETSI/3GPP cellular networks
|
||||
such as GPRS, EDGE, UMTS or HSPA.
|
||||
|
||||
%package -n libgtp6
|
||||
Summary: Library implementing GTP between SGSN and GGSN
|
||||
License: GPL-2.0-only
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libgtp6
|
||||
libgtp implements the GPRS Tunneling Protocol between SGSN and GGSN.
|
||||
|
||||
%package -n libgtp-devel
|
||||
Summary: Development files for the GTP library
|
||||
License: GPL-2.0-only
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libgtp6 = %{version}
|
||||
|
||||
%description -n libgtp-devel
|
||||
libgtp implements the GPRS Tunneling Protocol between SGSN and GGSN.
|
||||
|
||||
This subpackage contains libraries and header files for developing
|
||||
applications that want to make use of libgtp.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
echo "%{version}" >.tarball-version
|
||||
autoreconf -fi
|
||||
%configure \
|
||||
--disable-static \
|
||||
--docdir="%{_docdir}/%{name}" \
|
||||
--with-systemdsystemunitdir=%{_unitdir} \
|
||||
--includedir="%{_includedir}/%{name}"
|
||||
make %{?_smp_mflags} V=1
|
||||
|
||||
%install
|
||||
%make_install
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
|
||||
%check
|
||||
make %{?_smp_mflags} check || (find . -name testsuite.log -exec cat {} +)
|
||||
|
||||
%if 0%{?suse_version}
|
||||
%pre
|
||||
%service_add_pre %{name}.service
|
||||
|
||||
%post
|
||||
%service_add_post %{name}.service
|
||||
|
||||
%preun
|
||||
%service_del_preun %{name}.service
|
||||
|
||||
%postun
|
||||
%service_del_postun %{name}.service
|
||||
%endif
|
||||
|
||||
%post -n libgtp6 -p /sbin/ldconfig
|
||||
%postun -n libgtp6 -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc AUTHORS README.md
|
||||
%{_bindir}/osmo-ggsn
|
||||
%{_bindir}/sgsnemu
|
||||
%{_mandir}/man8/osmo-ggsn.8%{?ext_man}
|
||||
%{_mandir}/man8/sgsnemu.8%{?ext_man}
|
||||
%{_unitdir}/%{name}.service
|
||||
%dir %{_docdir}/%{name}/examples
|
||||
%{_docdir}/%{name}/examples/osmo-ggsn.cfg
|
||||
%dir %{_sysconfdir}/osmocom
|
||||
%config(noreplace) %{_sysconfdir}/osmocom/osmo-ggsn.cfg
|
||||
|
||||
%files -n libgtp6
|
||||
%{_libdir}/libgtp.so.6*
|
||||
|
||||
%files -n libgtp-devel
|
||||
%{_includedir}/%{name}/
|
||||
%{_libdir}/libgtp.so
|
||||
%{_libdir}/pkgconfig/libgtp.pc
|
||||
|
||||
%changelog
|
||||
57
debian/changelog
vendored
57
debian/changelog
vendored
@@ -1,3 +1,60 @@
|
||||
osmo-ggsn (1.6.0) unstable; urgency=medium
|
||||
|
||||
[ Pau Espin Pedrol ]
|
||||
* cosmetic: Fix comment typo
|
||||
* netns: Improve error checking
|
||||
* sgsnemu: cmdline: Drop unused function cmdline_parser_params_create()
|
||||
* sgsnemu: Pass array of in64_addr to in46a_from_eua()
|
||||
* sgsnemu: Rename sgsnemu's libgtp cb_conf
|
||||
* sgsnemu: Set its default loglevel category to INFO
|
||||
* Move icmpv6 and checksum files from ggsn/ dir to lib/
|
||||
* netdev_addaddr6: Use prefixlen arg
|
||||
* sgsnemu: Avoid adding extra autogenerated local link ipv6 addr to tun iface
|
||||
* sgsnemu: Fix ping transmitted statistics output
|
||||
* cosmetic: icmpv6.c: fix typo in comment
|
||||
* icmpv6.c: Mark internal function as static
|
||||
* sgsnemu: Get rid of duplicated options.destaddr
|
||||
* sgsnemu: Get rid of duplicated options.net
|
||||
* sgsnemu: tun_addaddr: Don't set local addr as dstaddr
|
||||
* icmpv6.c: Move code generating ipv6 hdr to its own function
|
||||
* Rename netdev_*route to end in route4
|
||||
* sgsnemu: Fix build/run against linux < 4.11 (no sysctl addr_gen_mode support)
|
||||
* sgsnemu: Handle IPv6 SLAAC in tun iface manually
|
||||
* sgsnemu: Implement ping on IPv6 APNs
|
||||
* sgsnemu: Fix assumption ipv6 Interface-Identifier of public addr == announced Prefix
|
||||
* gtp: queue_test: Fix printf gcc warn under ARM
|
||||
|
||||
[ Andreas Schultz ]
|
||||
* add Linux network namespace support for TUN device
|
||||
|
||||
[ Vadim Yanitskiy ]
|
||||
* lib/netns: fix open_ns(): return fd from open()
|
||||
|
||||
[ Philipp Maier ]
|
||||
* doc: do not use random ip address for dns in default conf
|
||||
* doc: use 127.0.0.2 instead of 127.0.0.6 as bind ip.
|
||||
* debug: use LOGL_NOTICE instead of LOGL_DEBUG
|
||||
|
||||
[ Eric ]
|
||||
* configure.ac: fix libtool issue with clang and sanitizer
|
||||
|
||||
[ Harald Welte ]
|
||||
* lib/netns.c: Add comments to the code, including doxygen API docs
|
||||
* lib/netns: OSMO_ASSERT() if user doesn't call init_netns()
|
||||
* lib/netns: Fix up error paths
|
||||
* example config: use RFC1918 addresses for GGSN pools
|
||||
|
||||
[ Dmitri Kalashnik ]
|
||||
* sgsnemu: use real tun device name after the device is up.
|
||||
|
||||
[ Oliver Smith ]
|
||||
* osmo-ggsn.spec.in: remove
|
||||
* contrib: import RPM spec
|
||||
* contrib: integrate RPM spec
|
||||
* Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in
|
||||
|
||||
-- Harald Welte <laforge@osmocom.org> Thu, 13 Aug 2020 12:26:20 +0200
|
||||
|
||||
osmo-ggsn (1.5.0) unstable; urgency=medium
|
||||
|
||||
[ Jan Engelhardt ]
|
||||
|
||||
@@ -42,10 +42,10 @@ ggsn ggsn0
|
||||
gtpu-mode tun
|
||||
tun-device tun4
|
||||
type-support v4
|
||||
ip prefix dynamic 176.16.222.0/24
|
||||
ip prefix dynamic 172.16.222.0/24
|
||||
ip dns 0 8.8.8.8
|
||||
ip dns 1 8.8.4.4
|
||||
ip ifconfig 176.16.222.0/24
|
||||
ip ifconfig 172.16.222.0/24
|
||||
no shutdown
|
||||
apn inet6
|
||||
gtpu-mode tun
|
||||
@@ -60,10 +60,10 @@ ggsn ggsn0
|
||||
gtpu-mode tun
|
||||
tun-device tun46
|
||||
type-support v4v6
|
||||
ip prefix dynamic 176.16.46.0/24
|
||||
ip prefix dynamic 172.16.46.0/24
|
||||
ip dns 0 8.8.8.8
|
||||
ip dns 1 8.8.4.4
|
||||
ip ifconfig 176.16.46.0/24
|
||||
ip ifconfig 172.16.46.0/24
|
||||
ipv6 prefix dynamic 2001:780:44:2100:0:0:0:0/56
|
||||
ipv6 dns 0 2001:4860:4860::8888
|
||||
ipv6 dns 1 2001:4860:4860::8844
|
||||
|
||||
@@ -29,7 +29,7 @@ static const struct log_info_cat default_categories[] = {
|
||||
[DICMP6] = {
|
||||
.name = "DICMP6",
|
||||
.description = "ICMPv6",
|
||||
.enabled = 1, .loglevel = LOGL_DEBUG,
|
||||
.enabled = 1, .loglevel = LOGL_NOTICE,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
Summary: Osmocom Gateway GPRS Support Node (GGSN)
|
||||
Name: @PACKAGE@
|
||||
Version: @VERSION@
|
||||
Release: 1
|
||||
URL: https://osmocom.org/projects/openggsn
|
||||
Source0: http://prdownloads.sourceforge.net/ggsn/%{name}-%{version}.tar.gz
|
||||
License: GPL
|
||||
Group: System Environment/Daemons
|
||||
BuildRoot: %{_tmppath}/%{name}-root
|
||||
|
||||
%description
|
||||
OsmoGGSN is a Gateway GPRS Support Node (GGSN). It is used by mobile
|
||||
operators as the interface between the Internet and the rest of the
|
||||
mobile network infrastructure. The project also provides an SGSN
|
||||
emulator suitable for GPRS core network testing.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
|
||||
./configure --prefix=/usr --enable-static-exec
|
||||
|
||||
make
|
||||
|
||||
%install
|
||||
|
||||
make install prefix=$RPM_BUILD_ROOT/usr
|
||||
strip $RPM_BUILD_ROOT/usr/bin/osmo-ggsn
|
||||
strip $RPM_BUILD_ROOT/usr/bin/sgsnemu
|
||||
|
||||
#Copy osmo-ggsn init script in place
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
|
||||
install -m755 examples/osmo-ggsn.init \
|
||||
$RPM_BUILD_ROOT/etc/rc.d/init.d/osmo-ggsn
|
||||
|
||||
#Copy osmo-ggsn.conf in place
|
||||
install -m755 examples/osmo-ggsn.cfg \
|
||||
$RPM_BUILD_ROOT/etc/osmo-ggsn.cfg
|
||||
|
||||
#Copy gsn_restart file in place
|
||||
mkdir -p $RPM_BUILD_ROOT/var/lib/osmo-ggsn
|
||||
echo "0" > $RPM_BUILD_ROOT/var/lib/osmo-ggsn/gsn_restart
|
||||
|
||||
#Clean up unwanted library files
|
||||
rm -rf $RPM_BUILD_ROOT/usr/include/*
|
||||
rm -rf $RPM_BUILD_ROOT/usr/lib/*
|
||||
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make clean
|
||||
|
||||
%post
|
||||
/sbin/chkconfig --add osmo-ggsn
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
|
||||
/usr/bin/osmo-ggsn
|
||||
/usr/bin/sgsnemu
|
||||
/etc/rc.d/init.d/osmo-ggsn
|
||||
%dir /var/lib/osmo-ggsn
|
||||
/var/lib/osmo-ggsn/gsn_restart
|
||||
|
||||
%doc AUTHORS COPYING INSTALL NEWS README.md
|
||||
%doc examples/osmo-ggsn.conf
|
||||
%doc examples/sgsnemu.conf
|
||||
%doc examples/osmo-ggsn.init
|
||||
%doc examples/firewall
|
||||
%doc /usr/man/man8/osmo-ggsn.8.gz
|
||||
%doc /usr/man/man8/sgsnemu.8.gz
|
||||
|
||||
%config /etc/osmo-ggsn.cfg
|
||||
|
||||
|
||||
#/usr/lib/libgtp.a
|
||||
#/usr/lib/libgtp.la
|
||||
#/usr/lib/libgtp.so
|
||||
#/usr/lib/libgtp.so.0
|
||||
#/usr/lib/libgtp.so.0.0.0
|
||||
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jun 30 2017 <laforge@gnumonks.org>
|
||||
- Update to OsmoGGSN
|
||||
|
||||
* Mon Jun 30 2003 <jj@openggsn.org>
|
||||
- Initial build.
|
||||
@@ -1928,11 +1928,11 @@ int main(int argc, char **argv)
|
||||
we don't need it. Don't exit on error since this sysctl is
|
||||
only available starting with linux 4.11. */
|
||||
snprintf(buf, sizeof(buf), "%u", IN6_ADDR_GEN_MODE_NONE);
|
||||
if (proc_ipv6_conf_write(options.tun_dev_name, "addr_gen_mode", buf) < 0) {
|
||||
if (proc_ipv6_conf_write(tun->devname, "addr_gen_mode", buf) < 0) {
|
||||
SYS_ERR(DSGSN, LOGL_ERROR, errno,
|
||||
"Failed to disable addr_gen_mode on %s, an extra link-local "
|
||||
"ip address will appear on the tun device.\n",
|
||||
options.tun_dev_name);
|
||||
tun->devname);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1940,9 +1940,9 @@ int main(int argc, char **argv)
|
||||
if (tun->fd > maxfd)
|
||||
maxfd = tun->fd;
|
||||
|
||||
if (proc_ipv6_conf_write(options.tun_dev_name, "accept_ra", "0") < 0) {
|
||||
if (proc_ipv6_conf_write(tun->devname, "accept_ra", "0") < 0) {
|
||||
SYS_ERR(DSGSN, LOGL_ERROR, 0,
|
||||
"Failed to disable IPv6 SLAAC on %s\n", options.tun_dev_name);
|
||||
"Failed to disable IPv6 SLAAC on %s\n", tun->devname);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include <osmocom/core/utils.h>
|
||||
@@ -27,7 +28,7 @@ static void queue_print(struct queue_t *queue, char* str)
|
||||
OSMO_ASSERT(memcmp(&qmsg_zero, &queue->qmsga[n], sizeof(qmsg_zero)) == 0);
|
||||
continue;
|
||||
}
|
||||
printf("%d\t%d\t%d\t%d\t%d\t%d\t%u\t%ld\n",
|
||||
printf("%d\t%d\t%d\t%d\t%d\t%d\t%u\t%" PRIuPTR "\n",
|
||||
n,
|
||||
queue->qmsga[n].seq,
|
||||
queue->qmsga[n].next,
|
||||
@@ -35,7 +36,7 @@ static void queue_print(struct queue_t *queue, char* str)
|
||||
(int)queue->qmsga[n].timeout,
|
||||
queue->qmsga[n].retrans,
|
||||
queue->qmsga[n].type,
|
||||
((uintptr_t)queue->qmsga[n].cbp & 0xFFFFFFFF)
|
||||
(uintptr_t)queue->qmsga[n].cbp
|
||||
);
|
||||
}
|
||||
printf("======================================================\n");
|
||||
|
||||
Reference in New Issue
Block a user