osmo-ggsn/ggsn
Pau Espin f5fbb419ef ggsn: Implement echo req/resp and recovery
This patch is quite big because implementing echo req/resp and recovery
requires having knowledge and managing differentiated state for each GSN
peer attached/connected to osmo-ggsn. This kind of information was not
available in osmo-ggsn nor in libgtp.

So osmo-ggsn is now able to track GSN peers connected to a
ggsn_ctx (associated gsn_t from libgtp) by means of "sgsn_peer" data
structure, and accessible from the ggsn through a list. The instances of
sgsn_peer are currently allocated and destroyed dynamically based on
discovered peer who have at least a pdp context attached to us (we are
not interested in peers without pdp contexts because we don't need to
send echo requests/responses and maintain state in that case).

A new private pointer (pdp_t->priv) data structure struct pdp_priv_t is
added to be able to relate a pdp_t to an sgsn as well as the already
existing pointer to an apn.

An "echo-interval <0-36000>" VTY command is added which allows
configuring time wait between echo requests being sent to each
sgsn_peer. Transmission of echo requests is disabled by default.

Finally, a new "show sgsn" VTY command is introduced, and its output is
also printed during "show ggsn".

Related: OS#4165
Change-Id: Id2c84165dc59dff495106758146a701ca488834f
2019-08-28 11:34:11 +02:00
..
Makefile.am ggsn: Implement echo req/resp and recovery 2019-08-28 11:34:11 +02:00
checksum.c IPv6: Implement IPv6 prefix assignment via ICMPv6 router advertisement 2017-08-11 10:45:56 +02:00
checksum.h IPv6: Implement IPv6 prefix assignment via ICMPv6 router advertisement 2017-08-11 10:45:56 +02:00
ggsn.c ggsn: Implement echo req/resp and recovery 2019-08-28 11:34:11 +02:00
ggsn.h ggsn: Implement echo req/resp and recovery 2019-08-28 11:34:11 +02:00
ggsn_main.c ggsn: Split application lifecycle related code into ggsn_main.c 2019-08-28 11:14:57 +02:00
ggsn_vty.c ggsn: Implement echo req/resp and recovery 2019-08-28 11:34:11 +02:00
icmpv6.c ggsn: encaps_tun: Avoid forwarding packet if EUA is unassigned, fix crash 2018-01-26 18:20:22 +00:00
icmpv6.h ggsn: encaps_tun: Avoid forwarding packet if EUA is unassigned, fix crash 2018-01-26 18:20:22 +00:00
pco.c Move pdp_get_peer_ipv() to lib/util.* 2019-08-28 11:14:57 +02:00
pco.h ggsn: Move PCO handling code into its own file 2019-08-28 11:13:46 +02:00
sgsn.c ggsn: Implement echo req/resp and recovery 2019-08-28 11:34:11 +02:00
sgsn.h ggsn: Implement echo req/resp and recovery 2019-08-28 11:34:11 +02:00