aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2023-11-23libgtp: Use gtp_cause_successful() instead of GTPCAUSE_ACC_REQdaniel/nitb-testsDaniel Willmann1-8/+7
Related: OS#6268 Change-Id: I7dd1e0aa185530e1e2d0402742df833c61a787a7
2023-11-22gtp: Add net GTP cause values and a function to check for successDaniel Willmann1-1/+10
According to the spec the upf/pgw can accept a modified pdp context from the request e.g. if an ipv4/6 context was requested, but only ipv4 is availiable. Introduce a function that checks all cause values that are considered successful. See also: 3GPP TS 29.060 Ch 7.3.2 Related: OS#6268 Change-Id: I9c3bf64537ef2223e29f8082861fa32fde26bf68
2023-09-12Bump version: 1.10.1.8-4963-dirty → 1.10.21.10.2Pau Espin Pedrol4-7/+23
Change-Id: I148375902975aba0a374e4507c97f1ff67d687bc
2023-07-24lib/in46_addr: add in46a_from_gsnaOliver Smith3-4/+10
Prepare to use it in gtp-kernel.c in a future patch. Related: OS#6096 Change-Id: I3e76eb7ee89ba338f085c617662d15cffa2a62d5
2023-07-21doc: running: update kernel-gtp limitationsOliver Smith1-1/+6
Related: OS#6096 Change-Id: Ie4f1452ecefbe0db0e4093caa8177f1c87bd3950
2023-07-21README: update documentation sectionOliver Smith1-3/+4
Change-Id: I3320dc5eb3d183a18c2bd2fe3139f729978ea2a1
2023-05-26systemd: depend on networking-online.targetOliver Smith1-1/+2
Related: SYS#6400 Change-Id: I29e547242b2ed1cfc4750c7d7e5f8636c2e8f3dc
2023-04-25debian: set compat level to 10Oliver Smith2-2/+2
Related: OS#5958 Change-Id: I4b2988fffba12cc84ff0834bb9ef0f3d9de2bcda
2023-04-11doc/manuals/chapters/configuration: fix typoOliver Smith1-1/+1
Change-Id: I0e9d2c77200c7c8b49aec669bc39ca91d5d4cf1f
2023-03-11tests: use -no-install libtool flag to avoid ./lt-* scriptsVadim Yanitskiy2-0/+2
This option should be used for any executables which are used only for testing, or for generating other files and are consequently never installed. By specifying this option, we are telling Libtool that the executable it links will only ever be executed from where it is built in the build tree. Libtool is usually able to considerably speed up the link process for such executables. Change-Id: I2ca675e93dc5b34bb08d3b841adc115e93558137
2023-03-09Do not hard-code -g and -O2 in CFLAGSVadim Yanitskiy6-6/+6
Let the user decide on the optimization level and debugging info. Change-Id: I4b0b523b7dac4d67413bda37b546964262e5ea0d
2023-02-27Bump version: 1.10.0.4-bf69 → 1.10.11.10.1Vadim Yanitskiy1-0/+12
Change-Id: Ibde9f259bccce29638d35efbd597669f5584e295
2023-02-27gtp: use OSMO_ASSERT() in gtp_new()Vadim Yanitskiy1-1/+1
When using built-in static_assert() [1], gcc v12.2.1 fails: In file included from gsn.c:27: gsn.c: In function 'gtp_new': gsn.c:444:54: error: expression in static assertion is not constant 444 | osmo_static_assert(gtp_T_defs[0].default_val != 0, first_default_val_not_zero); | ^ The reason is likely that gtp_T_defs[] is not const, so it cannot be assert()ed statically. With the current osmo_static_assert() implementation, this assert does nothing. One can change the gtp_T_defs[0].default_val to 0 and the code will still compile. Change-Id: Ia8af1736b63d501661046fe70befe5bbabc1045a Related: [1] libosmocore.git I5ca34bc14c05e8c38c721d7df33feb1c6c41c76e
2023-02-27gtp/gsn.c: fix 'No newline at end of file'Vadim Yanitskiy1-1/+1
git complains if it's missing, vim adds it automatically. Change-Id: I3b4808a76da89e65b934d818e7ca280bc0651483
2023-02-27lib/icmpv6.h: fix struct icmpv6_{radv_hdr,opt_prefix}Vadim Yanitskiy1-8/+6
Fix wrong field order in the big-endian variants. Change-Id: Ifaa63bb5496e056805bd13b964c8b430fb11c24c
2023-02-08debian/libgtp6.shlibs: new fileOliver Smith1-0/+2
List the most recent library version where new symbols where added, so debian properly upgrades libgtp6 when upgrading osmo-sgsn from the version that is currently in Debian to a version from the Osmocom repositories. Closes: OS#5318 Change-Id: Ida5dae4655c0acaeb377bc9d556a2ac333bca10a
2023-02-07Bump version: 1.9.0.10-4fac-dirty → 1.10.01.10.0Pau Espin Pedrol5-8/+28
Change-Id: I553fb72c577181c32005093eaf4fa986ae0e6ca8
2023-01-17Fix typos in comments and VTY descriptionsPau Espin Pedrol2-8/+8
Change-Id: I359425152dc18d29c57047f1b10942480b7a61e5
2022-12-23osmo-ggsn: Transition to use of 'telnet_init_default'arehbein1-1/+1
Related: OS#5809 Change-Id: I51b7c175192759e26d1791723540841e72879b02
2022-12-17ctrl: take both address and port from vty configMax1-2/+1
Change-Id: Ib31d67591657e308eebd1e6b7e23f79e6a3656e9
2022-11-04gtp: Introduce VTY configurable GTP timer X3Pau Espin Pedrol3-1/+7
This timer controls the amount of time a resp message transmitted by the local gsn is to be stored in the resp queue. This is used in order to detect duplicate requests received, since GTP states the exact same response should be answered if a duplicate request is received. Prior to this patch, this timer was hardcoded to 60 seconds. This patch actually should be set, in general, to a value equal than (T3-RESPONSE * N3-REQUESTS) values configured at the peer, since that is the maximum period during which the local gsn expects to receive req retransmissions from the peer. Hence, this value must be user configurable to adapt it to the peers connected to the GSN. The 60 seconds hardcoded value is therefore changed to default to our local (T3-RESPONSE * N3-REQUESTS), since the most common scenario for osmo-ggsn/osmo-sgsn is to run it against a peer osmo-sgsn/osmo-ggsn, which will have the same values by default. This way we avoid by default caching response messages for way too long, potentially filling the queue. Related: OS#5485 Change-Id: Ia15c1cfd201d7c43e9a1d6ceb6725ddf392d2c65
2022-11-02ggsn: Introduce tdef and make it configurable over VTYPau Espin Pedrol6-13/+53
Related: OS#5485 Change-Id: I10bc8e2e197c0e8753b23b684b5ae41025672bf7
2022-11-02Use rate_ctr for gsn_t available_countersPau Espin Pedrol3-132/+172
This way they can be inspected with regular osmocom means. Change-Id: I529305b4f824600c6e733a3c0d2c2c6673f99faf
2022-11-02Split gsn_t related APIs out of gtp.{c,h}Pau Espin Pedrol5-611/+710
This way we split the gsn_t object API/logic from the protocol (message handling) code. Change-Id: I47cebb51bf08b9fcf7f115fc8dbea5f3493d4388
2022-11-02cosmetic: gtp: Fix typo in commentPau Espin Pedrol1-1/+1
Change-Id: I54b80bba3126cb3ae534938e253721961d4e08c4
2022-08-30Ignore .deb build byproductsMax1-0/+4
Change-Id: Iec63ef5ea0acfc5e6621054926be15ae4754d65d
2022-08-30Set working directory in systemd service fileMax1-0/+2
By default systemd will execute service with root directory (or home directory for user instance) which might result in attempts to create files in unexpected place. Let's set it to 'osmocom' subdir of state directory (/var/lib for system instance) instead. Related: OS#4821 Change-Id: Idffc115c21cac77f6f43356333de538ba549fc6a
2022-06-28Bump version: 1.8.0.13-ade4-dirty → 1.9.01.9.0Pau Espin Pedrol5-8/+31
Change-Id: Id61cbe354437233fc6baf187ea90284da6a6944b
2022-06-18update git URLs (git -> https; gitea)Harald Welte2-4/+4
Change-Id: I9d59b62493bcdcb1bdbfbfd0525bae2988359f27
2022-04-13tests: use 'check_PROGRAMS' instead of 'noinst_PROGRAMS'Vadim Yanitskiy2-2/+2
When using 'check_PROGRAMS', autoconf/automake generates smarter Makefiles, so that the test programs are not being compiled during the normal 'make all', but only during 'make check'. Change-Id: Ia8b8dade0056c51d2dd1d814a89d1de064597344
2022-03-24pco.h: Fix typo in reference to specPau Espin Pedrol1-1/+1
Change-Id: Ic428892161123b62d25a7619128ef7325bf85500
2022-03-07gtp: Fix typo in commentPau Espin Pedrol1-1/+1
Change-Id: I0e38e0966081d8b37c3f816f5330b4f52f81b7fa
2022-03-07gtp: Log retrans queue register&free entriesPau Espin Pedrol1-5/+13
Change-Id: I4e12376652fc7a6a96fbdcb579dbe916c1473012
2022-03-07gtp: Specify retrans queue name & seqnum in log linesPau Espin Pedrol1-3/+4
Change-Id: I4f193d7a482ace33afd8526b5f50d2d03467d5fa
2022-03-07gtp: Small log improvements in gtp_create_pdp_ind()Pau Espin Pedrol1-3/+1
Drop unneeded log line, rewrite line to better fit code path. Change-Id: Id254e04d539cc055fee8c16fb66cd897b041557e
2022-03-07gtp: Log detection of rx duplicatePau Espin Pedrol1-0/+7
Change-Id: I8bc9143db6743ad4fae2fe6d6fe0417648e9eec9
2022-03-07gtp: Use switch statement in gtp_create_pdp_ind()Pau Espin Pedrol1-4/+6
Double if had to be changed to if-else anyway, so let's simply use a switch statement. Change-Id: I91e8722947e58776742521d89abef8ae7584cb25
2022-03-01libgtp: Define retransmit QUEUE_SIZE relative to PDP_MAX (increase)Pau Espin Pedrol2-531/+7187
QUEUE_SIZE holds the number of pending transmitted messages which can be handled concurrently. Current value was 1024, same as PDP contexts (PDP_MAX). However, that seems to be a quite low amount, which can be filled under certain conditions, for instance if recovery procedure is triggered on the GSN which is running full (around PDP_MAX pdp contexts created). In this scenario, the GSN would need to send around PDP_MAX concurrent messages (DeletePDPContextReq), which means the queue would very likely end up being full. Hence, let's define QUEUE_SIZE based on PDP_MAX, and set it to twice the size to make sure it won't be filled in extreme conditions. Change-Id: I6034b0fab2b2e5962314c2fca2f893246ce5cf4f
2022-03-01libgtp: Fix ggsn crash if pdp alloc array is full (PDP_MAX)Pau Espin Pedrol1-1/+12
osmo-ggsn crashes when concurrent pdp context num 1024 is created, due to the gsn->pdpa array (of size PDP_MAX, 1024) being full. The crash happens because return code of gtp_pdp_newpdp was not checked, and hence a pointer "pdp" pointing to a temporary not-fully-allocated object was being passed to gsn->cb_create_context_ind() callback. Let's avoid crashing and instead reject the PDP context. Related: OS#5469 Change-Id: I0d94ffad97eb4fef477d981bf285bf99740592a3
2022-02-25vty: Fix cmd 'no echo-interval' doing nothingPau Espin Pedrol1-2/+1
It was incorrectly implemented and in practice was a NOOP. Change-Id: I5e03c4965d05871d3f2e56675da6e75af0ec18c2
2022-02-09tests: in46a_test: Make coverity happy when calling in46a_from_euaPau Espin Pedrol1-19/+19
Coverity warns around that test code: "Overrunning struct type in46_addr of 20 bytes by passing it to a function which accesses it at byte offset 39." That's basically because in64a_from_eua expects to be passed a 2 element array to be filled. The second element, though, is only accessed in the case where an IPv4v6 EUA is passed, so in the cases where the test explicitly passes an IPv4 or IPv6 EUA it's not really an issue, hence coverity throwing a false positive here. Let's anyway rewrite the code to pass a 2 element array for completeness, since it doesn't hurt and makes coverity happy. Related: Coverity CID#249006 Change-Id: Idfc9104f48eeee6e7f11ebc5c17d4b0e4b2fe9e2
2021-11-16Bump version: 1.7.1.20-8cbd-dirty → 1.8.01.8.0Pau Espin Pedrol3-2/+31
Change-Id: I21502c6e0b804237fe9bd8f5579dbabd519d6d51
2021-10-08gtp_echo_responder: report invalid chars present in node-feautres cmdline ↵Pau Espin Pedrol1-1/+1
arg as error from "man strtoul": """ If endptr is not NULL, strtoul() stores the address of the first invalid character in *endptr. In particular, if *nptr is not '\0' but **endptr is '\0' on return, the entire string is valid. """ Fixes: ae81195418ebed5280d0753d037df483bb914a0b Change-Id: I89d26a575ef81ee17483db035924354588d9d094
2021-10-04Introduce program gtp-echo-responderPau Espin Pedrol9-1/+619
This is a small standalone program (under MIT license, hence cannot make use of libosmocore) whose only purpose is to answer GTPC (v1 and v2) Echo Request messages with Echo Reply ones, with information provided from the command line. A small python script companion is provided to easily test the program. Related: SYS#5598 Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1
2021-09-23cosmetic: configure.ac: Fix tabulation in linePau Espin Pedrol1-1/+1
Change-Id: I5cfc90ace5f9cc9c3fe4dde7aeccbdf1909da007
2021-06-10ggsn: Fix heap-use-after-free during Recovery without associated PDPPau Espin Pedrol1-2/+10
Related: OS#4641 Change-Id: Ib4dca2e30e723a196084b0fa0040fbceca835359
2021-06-01ggsn: Log tun fd write errorsPau Espin Pedrol3-4/+11
Change-Id: I5f681b5edcc4cf525629d2078ae0c0ffd7ebb72d
2021-05-06gtp: Support tx/rx RAN Information Relay messagePau Espin Pedrol3-0/+73
See 3GPP TS 29.060 sec 7.5.14.1 RAN Information Relay. Related: SYS#5314 Change-Id: Iea3eb032ccd4aed5187baca7f7719349d76039d4
2021-05-05gtp: constify pointer argPau Espin Pedrol1-1/+1
Change-Id: Ib5b5a8b64247202a2538c2ff8f8601981ccda822
2021-05-03cosmetic: gtpie.c: Fix trailing whitespacePau Espin Pedrol1-5/+5
Change-Id: I552e3b5f694e1b49fe5e21fa4023e4a24ffc2784