diff options
author | Keith <keith@rhizomatica.org> | 2023-01-09 23:45:02 +0100 |
---|---|---|
committer | Keith Whyte <keith@rhizomatica.org> | 2023-11-23 01:39:36 +0000 |
commit | 08b6fe7e80af5144e74487fbf8991753ca255efc (patch) | |
tree | 11411376c43108add9c4776f7d777700cea6ed3a | |
parent | 60b4eab233c97c2a522e29cc266c393234f5d63a (diff) |
Make local attach max age VTY configurable
Change-Id: I14d1e6489001529ac2c96ddbf41605c33b05283b
-rw-r--r-- | include/osmocom/hlr/dgsm.h | 1 | ||||
-rw-r--r-- | src/dgsm.c | 2 | ||||
-rw-r--r-- | src/dgsm_vty.c | 15 |
3 files changed, 17 insertions, 1 deletions
diff --git a/include/osmocom/hlr/dgsm.h b/include/osmocom/hlr/dgsm.h index 1114fbe..12a827e 100644 --- a/include/osmocom/hlr/dgsm.h +++ b/include/osmocom/hlr/dgsm.h @@ -25,6 +25,7 @@ #include <osmocom/gsupclient/cni_peer_id.h> #include <osmocom/gsupclient/gsup_req.h> +#define OSMO_DGSM_DEFAULT_LOCAL_ATTACH_MAX_AGE 60 * 60 #define OSMO_DGSM_DEFAULT_RESULT_TIMEOUT_MS 2000 #define LOG_DGSM(imsi, level, fmt, args...) \ LOGP(DDGSM, level, "(IMSI-%s) " fmt, imsi, ##args) @@ -183,7 +183,7 @@ void dgsm_init(void *ctx) dgsm_ctx = talloc_named_const(ctx, 0, "dgsm"); INIT_LLIST_HEAD(&g_hlr->mslookup.server.local_site_services); - g_hlr->mslookup.server.local_attach_max_age = 60 * 60; + g_hlr->mslookup.server.local_attach_max_age = OSMO_DGSM_DEFAULT_LOCAL_ATTACH_MAX_AGE; g_hlr->mslookup.client.result_timeout_milliseconds = OSMO_DGSM_DEFAULT_RESULT_TIMEOUT_MS; diff --git a/src/dgsm_vty.c b/src/dgsm_vty.c index d204a4a..049a78d 100644 --- a/src/dgsm_vty.c +++ b/src/dgsm_vty.c @@ -190,6 +190,17 @@ DEFUN(cfg_mslookup_server_no_mdns_bind, return CMD_SUCCESS; } +DEFUN(cfg_mslookup_server_max_age, + cfg_mslookup_server_max_age_cmd, + "max-age <1-21600>", + "How old can the Last Location Update be for the mslookup server to respond\n" + "max age in seconds\n") +{ + uint32_t val = atol(argv[0]); + g_hlr->mslookup.server.local_attach_max_age = val; + return CMD_SUCCESS; +} + DEFUN(cfg_mslookup_auth_imsi_only, cfg_mslookup_auth_imsi_only_cmd, "authorized-imsi-only", @@ -511,6 +522,9 @@ int config_write_mslookup(struct vty *vty) vty_out(vty, " msc ipa-name %s%s", osmo_ipa_name_to_str(&msc->name), VTY_NEWLINE); config_write_msc_services(vty, " ", msc); } + if (g_hlr->mslookup.server.local_attach_max_age != OSMO_DGSM_DEFAULT_LOCAL_ATTACH_MAX_AGE) + vty_out(vty, " max-age %u%s", + g_hlr->mslookup.server.local_attach_max_age, VTY_NEWLINE); /* If the server is disabled, still output the above to not lose the service config. */ if (!g_hlr->mslookup.server.enable) @@ -725,6 +739,7 @@ void dgsm_vty_init(void) install_element(MSLOOKUP_SERVER_NODE, &cfg_mslookup_server_msc_service_cmd); install_element(MSLOOKUP_SERVER_NODE, &cfg_mslookup_server_msc_no_service_cmd); install_element(MSLOOKUP_SERVER_NODE, &cfg_mslookup_server_msc_no_service_addr_cmd); + install_element(MSLOOKUP_SERVER_NODE, &cfg_mslookup_server_max_age_cmd); install_element(MSLOOKUP_SERVER_NODE, &cfg_mslookup_server_msc_cmd); install_node(&mslookup_server_msc_node, NULL); |