Age | Commit message (Collapse) | Author | Files | Lines |
|
In case the GGSN is behind some kind of DNAT, the public GTP-C and
GTP-U IP addresses as exposed inside the GTP payload information
elements are different from the (internal, behind-nat) IP address
to which it listens/binds.
Change-Id: I548c9011c9abd66d46f963b1def61575f3dabb89
|
|
Change-Id: I0846e21ac63774939934ab629c6d7212269be9a6
|
|
Change-Id: I3977cd4777aa4cf37a1d6e21eba0bc37d61421f3
|
|
Osmocom has maintained this program since about 7 years now, while
the original author / copyright holder has completely disappeared.
With the introduction of Osmocom-style CTRL and VTY interfaces,
the way how the program is used and configured has substantially
changed. In order to avoid confusion in terms of configuration file
format etc, let's rename it to OsmoGGSN.
Change-Id: I2da30f7d4828e185bfac1a4e2d8414b01cbe4f9d
|
|
Change-Id: I0c8773bd6ef41332b91b5b025aef9ef129af8289
|
|
* README.Solaris is obsolete and related code has been removed
* NEWS file was unmaintained for more than a decade, remove it
* Remove "Performance" chapter about 550MHz Athlon
* gengetopt is no longer needed for ggsn
* remove compilation/installation instructions horribly out of date
* command line syntax of 'ggsn' program has changed
Change-Id: I45d627911503c7b733cae6a1396ca4d69a9994db
|
|
Change-Id: I9613ca3436e77ea132c47f0096df7c5050d7e826
|
|
Change-Id: I53a8a89abb0080a39a153e9d3864c17b29aa193c
|
|
We haven nobody maintaining this platform, let's remove it.
In fact, only Linux and FreeBSD are part of the jenkins build tests,
so even Apple/MacOS is up for disposal. However, as it's more
popular, let's keep the code.
Change-Id: Id6b8179259bacade52c39f96e688f828eff164ac
|
|
This is required once one wants to support multiple GSNs in a single
application.
WARNING: This breaks ABI compatibility, LIBVERSION must be adjusted
Change-Id: I68ae49a765828fa681054c68bf7f5e74dbe48ad2
|
|
The control interface handle never belonged into libgtp in the first
place. Commit 727417dd28813c697b4820aef9f54f249e30c4b8 should not
have added this to the shared library (used by sgsnemu, osmo-sgsn, ...),
but to some private state of the GGSN.
Introducing a private context pointer at the same location will keep
ABI compatibilty.
Change-Id: I4f17516dae3e04114564828a3e5f6e2ea54212a5
|
|
Change-Id: I285be20df76774ac7258b6edb3d4f2d28703757d
|
|
we rather pass the in46_prefix directly into ippool_new()
Change-Id: Iadf6274e881a9bfc75eb41f9380f5ae2d8c92a0f
|
|
This allows us to remove pool members without having to keep
a pointer to the pool around.
Change-Id: I9042eb85989c5451d7894678eca110dd19e78002
|
|
address
Change-Id: I42d41ec1370b9cc15d372b649d8e1bc78e76af9b
|
|
Change-Id: I797d105117e81951732bcfc2cc26a8d00fd69443
|
|
Change-Id: I752b7033a106a74dc219047da5c3a7ad3cd3602e
|
|
This allows the application to attach some private state to the tun
device, such as the context from which it was created/allocated
Change-Id: Ief43b9b5fab5830fa8e28362c795f88f0b4d353b
|
|
Change-Id: I979867d643c9fa912884fe55105333dbad39ab97
|
|
Change-Id: I760f25df609c309eba4d5716f3e23b49320449bf
|
|
Change-Id: I999d35cdffbdb61984da15d616f675005aa0688c
|
|
During IPv6 support implementation, helper function pco_contains_proto
was added which contains an error: It is only capable of finding first
protocol correctly, and as a consequence, in my setup DNS servers where not
sent back to the SGSN/MS, resulting in phone being able to connect to
IPs but not to domain names which required DNS resolution.
The condition in the while loop is also changed to match the increment
of the variable inside the loop to make it easier to understand at first
glance.
Fixes: 1ae98777d9b1ee62e6900caf4bb580d1a42bb416
Change-Id: Icc2e6716c33d78d3c3e000f529806228d8aa155e
|
|
See
https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
for details.
Change-Id: Icdcb388ad22b0c009dac7968408d1e2504c838c1
Related: OS#1861
|
|
Change-Id: I036ed452826b9a6848d22d45bdcc95e20a110b8b
|
|
* print destination address on sendto error
* print address length on conversion error
* log listening address
* log GTP version on PDP context errors
* fix incorrect logging message for unknown GSN peer
Related: SYS#3610
Change-Id: I0f8ad8687acb7f6f0eeeb962f007e87cca0c4c27
|
|
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
|