Age | Commit message (Collapse) | Author | Files | Lines |
|
This updates the debian changelog to 0.94 and adds some logic
to debian/rulres which fixes the version of the libgtp.pc file
built as part of our OBS builds (used to be UNKNOWN since
commit 23eea1d132120198745dcca32728906d5f05dc5f)
Change-Id: I883feaef35ff5ffd1b22fb255b7c36112b4a8f3b
|
|
When a peer GSN receives a GPDU for an unknown PDP context, it sends
a GTP Error Indication. This Error Indication should be used to
delete the offending PDP context locally.
In GTPv1, the Error Indication contains some mandatory IEs using
which we can look up the PDP context and delete it.
The existing code only dealt with GTPv0 Error Indications which lack
those IEs and use the TEI in the header instead.
Change-Id: I3e843f9ef1d6fd7868cc992e083c0891d16b6da9
Closes: OS#2426
|
|
Change-Id: Iadd1fe3de7c476576a4409f22f5e84e9eade6b6e
|
|
For some reason Max' commits introducing the CTRL/trap interface
about one year ago didn't convert the IMSI to its actual textual
representation before usign it in the CTRL interface.
Let's clean that up by properly interpreting the IMSI.
Change-Id: I8b20d2e47a29de266d93a7ddd5e6877f7e346a63
|
|
This generates the version number from the latest tag + git history
Change-Id: I71e1c3f8f534d9e9690c94068eccdee29a6fee12
|
|
Change-Id: I096e3b614e82e402886163274cfcf9355bd57580
|
|
Change-Id: I738472765ab09f530dcf071455e1bb4e6fb3f6e5
|
|
As we can now have PDP contexts with IPv6 user IP payload,
it is useful to extend the TUN related code to be able to
configure the tun device IPv6 address + prefix length
Change-Id: I899d21e52d02e0b8384af29ddd489ff19c8f2cf6
|
|
There's a bit of trickery with the ip_pool and it's "lengty=8" IPv6
prefix handling, let's make sure we don't accidentially call any
support functions with addresses of wrong length.
Change-Id: I444c190bdcd18780344e1f0dad4faf3bcf9da5a5
|
|
In IPv6, DNS server information is not passed along as IPCP6 like
in IPv5 with IPCP. The reason is that IPCP6 (for PPP) doesn't
support passing DNS server information. Rather, the relevant RFCs
indicate DHCPv6 should be used even over point-to-point links.
3GPP decided to avoid DHCPv6 dependency for stateless autoconfiguration
(the only mandatory IPv6 configuration mechanism) and added some new
non-PPP-style PCO information elements ("containers") which can among
other things inform a MS about IPV6 DNS servers.
That same mechanism can also be used to inform the MS about IPv4 DNS
servers, so for IPv4 there are now two competing mechanisms: IPCP and
the new "native" PCO container. With this patch, we support both
for IPv4.
Change-Id: I21499afd61def8c925f7838bde76f34d28214b56
|
|
The 3GPP specs are quite strange when it comes to how an IPv6 address
or rather prefix is assigned to an IPv6 PDP context. The designated
method for allocating the IPv6 address via the PDP EUA (End User
Address) Information Element in the GTP signalling plane is *not*
used to allocate the address/prefix. Instead, the EUA is used to
allocate an "interface identifier" to the MS, which it the uses
to derive its link-local source address to send a router solicitation.
The GGSN subsequently answers witha router advertisement, advertising
a single/64 prefix, whihcthe MS then uses to generate it's real IPv6
source address for subsequent communication.
Change-Id: Icddf7d30e01d76a4784bcef5787b36f52f703a9f
|
|
In IPv6 GPRS, we actually don't want to allocate an individual v6
address (like in IPv4), but we want to allocate a prefix. The
standard prefix lengh is 8 bytes, i.e. a /64 prefix. This patch
extends the pool to be able to work with such v6 prefixes.
Change-Id: I0cf700b6baf195a2e5fbea000531f801acaaa443
|
|
This function is used to compare an IPv6 address against another,
using the smaller of the two prefix lengths.
Change-Id: Ic993d8abdc90897cb55276f01ae3b8a5eadf5a0d
|
|
When we receive PDP context requests for unknown PDP types or if
we run out of dynamic addresses, we need to inform the SGSN that
PDP context creation failed.
Change-Id: Ibf199c1726130d27c8f80230b30ee51101c93b06
|
|
This patch enables the use of IPv6 PDP contexts. The phone will
have to request an IPv6 End-user-Address, and the GGSN will have
to be configured for an IPv6 pool.
The outer transport-layer IP between SGSN and GGSN must still be
IPv4, it is not modified by this patch
Change-Id: I22c3bf32a98e5daf99d6eaeac8c9f95cc7574774
|
|
Change-Id: If3e53584e8c9c1f06bba4c183c9fd65fae913904
|
|
We can simply use 'struct iphdr' from netinet/ip.h to achieve
the same goal (and be portable).
Change-Id: Ieece22e127dc14a7ffdc3b05656628989ad00b32
|
|
Extend the IP pool implementation to be able to manage both pools
of 32bit addresses (IPv4) as well as pools of 128bit addresses (IPv6)
Change-Id: Ib98cc4bf634d6be9a7bf8c03a24e629455fcafc8
|
|
An EUA length of *2* octets indicates dynamic IP address, while
an EUA length of 0 is invalid. Let's fix this hack (which needs
to finally be removed anyway).
Change-Id: Ib1b57eb0654327882044d6862d955f4b32aa6bcd
|
|
* propagate error code from gtp_new() to caller instead of always
returning -1
* on socket-related failures log explicitly which kind of socket caused
error
* log expected GTP version for unexpected packets
Change-Id: Ie07f1e4246eb178838b7df21946a08a1f60f2084
related: SYS#3610
|
|
Move common trap create/send code into separate function.
Change-Id: Iaadc921b951aeb9b3ad5ab796e13d52017139468
|
|
Change-Id: Ic617c618db17e7109ee864c4e6c86f3bee081d02
|
|
When README was renamed to README.md, the debian and rpm packaging
information was not updated.
Change-Id: I3fb3016defb74cf4e9c0a363f70eff9d6f71a5f5
|
|
Change-Id: Ib4213388dffab125e75d9b1f7d72319e041059ea
|
|
Change-Id: Ibbae061fda3db49f8ecda263cfc3ca6873c0b1b3
|
|
Change-Id: I7c676debcdfef2471004deb9ef5a63e8f4e97e15
Depends: libosmocore change-id I2bc93ab4781487e7685cfb63091a489cd126b1a8
|
|
Change-Id: I546dc0a8d814527b9a96943a52f2f6b700285167
|
|
Change-Id: I0a8f5a69f2a943344331d36ba225c02b0209beeb
|
|
We have a detailed log in git instead.
Change-Id: I6a7fe97995b5f65080a04423fee77030dea26b84
|
|
Change-Id: If65b8281933b5833b5ce83239688e775cc267f4c
|
|
get_seq() is called also from contexts where GTP-U is used, and GTP-U
doesn't have sequence numbers. Thus, it is perfectly normal if no
sequence number and/or no S flag in the header is present.
Change-Id: Ie19b95bbb4427e547843a019f5213a231a9f83da
|
|
When Linux Kernel GTP-U support is enabled, OpenGGSN so far only worked
with GTPv0,but not with GTPv1, as the TEI values were not correctly
configured. This patch fixes the initialzation of the local and remote
TEI before using libgtpnl to create a tunnel context in the kernel.
Change-Id: I3e953ff5b4ab44c26dbbe20d18b61038fa57ff32
|
|
The gsn_t changed the size with the addition of the ctrl pointer.
Bump the SO version to not break osmo-sgsn/ggsn on upgrade.
Call the -dev package libgtp-dev to follow the rest of Osmocom and
to ease making releases here.
Change-Id: Iac4d6d2effde1a6b2f60b1e1b49c91513d5ca8c3
|
|
debian/control:
* restructure to make it easier to incorporate further changes
* update package descriptions
* update project URL
debian/rules:
* use proper hardening syntax
* remove useless comment
debian/copyright: update to match Debian format
Change-Id: Ia7f0a3a583ad63f5c6e5cf5e5de2ff7dd9eed8a9
Related: OS#1694
|
|
* as there are muptiple flags in the field, use plural
* print the flags as hex value, not decimal. Hex is customary for bitfields.
Change-Id: Ib23d80fae32b4e9fa146d82d8f5a1dada1a3cb2b
|
|
Do not attempt to send TRAP message on PDP context deletion if peer is
unknown.
Change-Id: I5e02c1d42bb7aaf1ef81a9824aab7b12047cdd3e
Fixes: Coverity CID 150135
|
|
An fopen("w") error used to omit the umask() call to reinstate the previous
umask. Also an fopen("r") at the top will never create a file and hence does
not need a umask set.
Instead, wrap the umask change and change-back tightly around the single
fopen("w") call.
Change-Id: If7d948e2f2ba47ecebba5614f18235a53b273d14
|
|
Fix errors during gsn_restart file path composition:
- possible buffer overflow because the wrong remaining length was fed to
strncat().
- missing path separator: put restart file in dir/gsn_restart instead of
../dirgsn_restart.
This assumes that the path separator is '/'.
Use talloc_asprintf() to fix all filename length problems and shorten the code.
In order to free the allocated path, add a free_filename label, and jump there
instead of returning from the fopen("w") failure branch. Also don't return from
"fclose failed" branch in order to free the path, remove the if {} braces.
Change-Id: Idf0a64ff45720aa818f2f9de1e8ba2fe2c82631b
|
|
Change-Id: I658152eb24fd783fce9ceac35872ab918c80209a
|
|
Explicitly set AC_CONFIG_AUX_DIR.
To reproduce the error avoided by this patch:
rm install-sh # in case it was already generated.
touch ../install-sh # yes, outside this source tree
autoreconf -fi
This will produce an error like
...
configure.ac:16: error: required file '../ltmain.sh' not found
configure.ac:5: installing '../missing'
src/Makefile.am: installing '../depcomp'
autoreconf: automake failed with exit status: 1
See also automake (vim `which automake`) and look for 'sub locate_aux_dir'.
Change-Id: I4aef311d7a475800e09f48110a499c3759c69f5d
|
|
Only generation of TRAP messages over Control Interface is supported so
far.
Note: requires corresponding version of libosmoctrl.
Change-Id: Ia76f841d2c9cd14394e9316fcd39f4060e23c898
Related: OS#1646
|
|
Change-Id: Ib141dc9ae03c2b10b8925e30a2782bf2d932e192
|
|
Change-Id: Iff0f1499660b12a47277b16a435efecb42fab038
|
|
This IE is known to be sent by a Cisco GGSN, and was added in
ETSI TS 129 060 V7.17.0 (2011-10) /
3GPP TS 29.060 version 7.17.0 Release 7
See https://lists.osmocom.org/pipermail/osmocom-net-gprs/2016-September/000711.html
Subject "sgsnemu failing to create PDP context with Cisco GGSN"
Tue Sep 13 08:00:37 UTC 2016
Tweaked-by: Neels Hofmeyr <nhofmeyr@sysmocom.de>
|
|
Fix an apparent typo that prevented queue iteration to find the correct item to
be removed. Instead, the first item was always returned. Calling code has been
analyzed to find that mostly this fault is not visible, since usually, the
first item is indeed the correct item to be returned. See mail thread
http://lists.osmocom.org/pipermail/osmocom-net-gprs/2016-June/000618.html
Date: Wed Jun 1 11:51:38 UTC 2016
Subject: "[PATCH] gtp/queue/queue_seqdel(): fix element check which always was true"
|
|
|
|
Debian SID has version 0.92-1 and we had 0.92. Bump it to 0.93.
|
|
CC gtpie.lo
gtpie.c: In function 'gtpie_encaps':
gtpie.c:437:22: warning: variable 'm' set but not used [-Wunused-but-set-variable]
union gtpie_member *m;
^
gtpie.c: In function 'gtpie_encaps2':
gtpie.c:537:22: warning: variable 'm' set but not used [-Wunused-but-set-variable]
union gtpie_member *m;
^
lookup.c: In function ‘lookup’:
lookup.c:40:24: warning: typedef ‘ub1’ locally defined but not used [-Wunused-local-typedefs]
typedef unsigned char ub1; /* unsigned 1-byte quantities */
^
Still one compilation warning left in cmdline.c, but that code
is autogenerated.
|
|
gtp-kernel.h: In function ‘gtp_kernel_init’:
gtp-kernel.h:25:15: error: ‘struct gengetopt_args_info’ has no member named ‘gtpnl_given’
if (args_info->gtpnl_given) {
^
Makefile:422: recipe for target 'ggsn
Reported-by: Holger Freyther <holger@freyther.de>
|
|
Included accidentaly in 8419e33 ("examples: ggsn.conf: document
tp-linux toggle").
|