ns2: vty: allow the users (pcu/sgsn) to set a default bind

The SGSN will always bind to 0.0.0.0 in difference the PCU bind is depending
on the info indication. Allow to the user to define a default bind
address.

Change-Id: I2a9dcd14f4ad16211c0f6d98812ad4a13e910c2a
This commit is contained in:
Alexander Couzens 2020-10-01 19:08:38 +02:00 committed by laforge
parent 024e1957cc
commit 1fac6f7452
2 changed files with 11 additions and 2 deletions

View File

@ -9,6 +9,7 @@
#include <osmocom/core/prim.h>
struct osmo_sockaddr;
struct osmo_sockaddr_str;
struct gprs_ns2_inst;
struct gprs_ns2_nse;
@ -157,7 +158,7 @@ char *gprs_ns2_ll_str_buf(char *buf, size_t buf_len, struct gprs_ns2_vc *nsvc);
char *gprs_ns2_ll_str_c(const void *ctx, struct gprs_ns2_vc *nsvc);
/* vty */
int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi);
int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, struct osmo_sockaddr_str *default_bind);
int gprs_ns2_vty_create();
void gprs_ns2_vty_force_vc_mode(bool force, enum gprs_ns2_vc_mode mode, const char *reason);

View File

@ -690,7 +690,13 @@ DEFUN(logging_fltr_nsvc,
return CMD_SUCCESS;
}
int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi)
/**
* gprs_ns2_vty_init initialize the vty
* \param[inout] nsi
* \param[in] default_bind set the default address to bind to. Can be NULL.
* \return 0 on success
*/
int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, struct osmo_sockaddr_str *default_bind)
{
static bool vty_elements_installed = false;
@ -698,6 +704,8 @@ int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi)
memset(&priv, 0, sizeof(struct ns2_vty_priv));
INIT_LLIST_HEAD(&priv.vtyvc);
priv.vc_mode = NS2_VC_MODE_BLOCKRESET;
if (default_bind)
memcpy(&priv.udp, default_bind, sizeof(*default_bind));
/* Regression test code may call this function repeatedly, so make sure
* that VTY elements are not duplicated, which would assert. */