aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-08-28 16:08:45 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2019-08-28 16:08:49 +0200
commitaa89f5dffced73ee9e7267739193771e6d143b89 (patch)
tree43ddbc1c08ffc65ba77f99068d39d29ff2905fe5
parent5623eb843958bf65ac9fe323a914788b8092b073 (diff)
gtp: make echo_interval unsigned
There's no real need to use -1 to indicate echo timer as disabled, since 0 can also be used (it doesn't make sense to have a timer timeout of 0). This way code is simplified. Change-Id: I689034887188a53590eddeffda781629694eb5ed
-rw-r--r--include/osmocom/sgsn/gprs_sgsn.h2
-rw-r--r--src/gprs/gprs_sgsn.c3
-rw-r--r--src/gprs/sgsn_vty.c6
3 files changed, 5 insertions, 6 deletions
diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h
index 336155c9..48c063d0 100644
--- a/include/osmocom/sgsn/gprs_sgsn.h
+++ b/include/osmocom/sgsn/gprs_sgsn.h
@@ -392,7 +392,7 @@ struct sgsn_ggsn_ctx {
struct gsn_t *gsn;
struct llist_head pdp_list; /* list of associated pdp ctx (struct sgsn_pdp_ctx*) */
struct osmo_timer_list echo_timer;
- int echo_interval;
+ unsigned int echo_interval;
};
struct sgsn_ggsn_ctx *sgsn_ggsn_ctx_alloc(uint32_t id);
void sgsn_ggsn_ctx_free(struct sgsn_ggsn_ctx *ggc);
diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c
index 9f02d542..7174bd5e 100644
--- a/src/gprs/gprs_sgsn.c
+++ b/src/gprs/gprs_sgsn.c
@@ -500,7 +500,7 @@ void sgsn_ggsn_ctx_check_echo_timer(struct sgsn_ggsn_ctx *ggc)
bool pending = osmo_timer_pending(&ggc->echo_timer);
/* Only enable if allowed by policy and at least 1 pdp ctx exists against ggsn */
- if (!llist_empty(&ggc->pdp_list) && ggc->echo_interval > 0) {
+ if (!llist_empty(&ggc->pdp_list) && ggc->echo_interval) {
if (!pending)
osmo_timer_schedule(&ggc->echo_timer, ggc->echo_interval, 0);
} else {
@@ -528,7 +528,6 @@ struct sgsn_ggsn_ctx *sgsn_ggsn_ctx_alloc(uint32_t id)
ggc->id = id;
ggc->gtp_version = 1;
ggc->remote_restart_ctr = -1;
- ggc->echo_interval = -1;
/* if we are called from config file parse, this gsn doesn't exist yet */
ggc->gsn = sgsn->gsn;
INIT_LLIST_HEAD(&ggc->pdp_list);
diff --git a/src/gprs/sgsn_vty.c b/src/gprs/sgsn_vty.c
index 68d3a77f..42b5121c 100644
--- a/src/gprs/sgsn_vty.c
+++ b/src/gprs/sgsn_vty.c
@@ -190,8 +190,8 @@ static int config_write_sgsn(struct vty *vty)
inet_ntoa(gctx->remote_addr), VTY_NEWLINE);
vty_out(vty, " ggsn %u gtp-version %u%s", gctx->id,
gctx->gtp_version, VTY_NEWLINE);
- if (gctx->echo_interval != -1)
- vty_out(vty, " ggsn %u echo-interval %"PRId32"%s",
+ if (gctx->echo_interval)
+ vty_out(vty, " ggsn %u echo-interval %u%s",
gctx->id, gctx->echo_interval, VTY_NEWLINE);
else
vty_out(vty, " ggsn %u no echo-interval%s",
@@ -395,7 +395,7 @@ DEFUN(cfg_ggsn_no_echo_interval, cfg_ggsn_no_echo_interval_cmd,
uint32_t id = atoi(argv[0]);
struct sgsn_ggsn_ctx *ggc = sgsn_ggsn_ctx_find_alloc(id);
- ggc->echo_interval = -1;
+ ggc->echo_interval = 0;
sgsn_ggsn_ctx_check_echo_timer(ggc);
return CMD_SUCCESS;