<p>lynxis lazus <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/25144">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
daniel: Looks good to me, but someone else must approve
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gprs_ns2: move sns_event into internal.h to direct emit events<br><br>When other parts of ns2 requires to emit an event to the SNS fsm it would<br>need a proxy function because the events are private to the<br>SNS file. To circumvent creating multiple proxy function make the events<br>available via a header file.<br><br>Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc<br>---<br>M src/gb/gprs_ns2_internal.h<br>M src/gb/gprs_ns2_sns.c<br>2 files changed, 92 insertions(+), 92 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h</span><br><span>index 95efbae..6096263 100644</span><br><span>--- a/src/gb/gprs_ns2_internal.h</span><br><span>+++ b/src/gb/gprs_ns2_internal.h</span><br><span>@@ -320,6 +320,23 @@</span><br><span> void (*free_bind)(struct gprs_ns2_vc_bind *driver);</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+enum ns2_sns_event {</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_REQ_SELECT_ENDPOINT, /*!< Select a SNS endpoint from the list */</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_SIZE,</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_SIZE_ACK,</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_CONFIG,</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_CONFIG_END, /*!< SNS-CONFIG with end flag received */</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_CONFIG_ACK,</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_ADD,</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_DELETE,</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_CHANGE_WEIGHT,</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_RX_ACK, /*!< Rx of SNS-ACK (response to ADD/DELETE/CHG_WEIGHT */</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_REQ_NO_NSVC, /*!< no more NS-VC remaining (all dead) */</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_REQ_NSVC_ALIVE, /*!< a NS-VC became alive */</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_REQ_ADD_BIND, /*!< add a new local bind to this NSE */</span><br><span style="color: hsl(120, 100%, 40%);">+ NS2_SNS_EV_REQ_DELETE_BIND, /*!< remove a local bind from this NSE */</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> enum ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind,</span><br><span> struct msgb *msg,</span><br><span> const struct osmo_sockaddr *remote,</span><br><span>diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c</span><br><span>index a9ace5f..181d1a3 100644</span><br><span>--- a/src/gb/gprs_ns2_sns.c</span><br><span>+++ b/src/gb/gprs_ns2_sns.c</span><br><span>@@ -72,38 +72,21 @@</span><br><span> GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK, /* !< SGSN role: Wait for CONFIG-ACK from BSS */</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-enum gprs_sns_event {</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_REQ_SELECT_ENDPOINT, /*!< Select a SNS endpoint from the list */</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_SIZE,</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_SIZE_ACK,</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_CONFIG,</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_CONFIG_END, /*!< SNS-CONFIG with end flag received */</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_CONFIG_ACK,</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_ADD,</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_DELETE,</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_CHANGE_WEIGHT,</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_RX_ACK, /*!< Rx of SNS-ACK (response to ADD/DELETE/CHG_WEIGHT */</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_REQ_NO_NSVC, /*!< no more NS-VC remaining (all dead) */</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_REQ_NSVC_ALIVE, /*!< a NS-VC became alive */</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_REQ_ADD_BIND, /*!< add a new local bind to this NSE */</span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_SNS_EV_REQ_DELETE_BIND, /*!< remove a local bind from this NSE */</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static const struct value_string gprs_sns_event_names[] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_REQ_SELECT_ENDPOINT, "REQ_SELECT_ENDPOINT" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_SIZE, "RX_SIZE" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_SIZE_ACK, "RX_SIZE_ACK" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_CONFIG, "RX_CONFIG" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_CONFIG_END, "RX_CONFIG_END" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_CONFIG_ACK, "RX_CONFIG_ACK" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_ADD, "RX_ADD" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_DELETE, "RX_DELETE" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_ACK, "RX_ACK" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_RX_CHANGE_WEIGHT, "RX_CHANGE_WEIGHT" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_REQ_NO_NSVC, "REQ_NO_NSVC" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_REQ_NSVC_ALIVE, "REQ_NSVC_ALIVE"},</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_REQ_ADD_BIND, "REQ_ADD_BIND"},</span><br><span style="color: hsl(0, 100%, 40%);">- { GPRS_SNS_EV_REQ_DELETE_BIND, "REQ_DELETE_BIND"},</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_REQ_SELECT_ENDPOINT, "REQ_SELECT_ENDPOINT" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_SIZE, "RX_SIZE" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_SIZE_ACK, "RX_SIZE_ACK" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_CONFIG, "RX_CONFIG" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_CONFIG_END, "RX_CONFIG_END" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_CONFIG_ACK, "RX_CONFIG_ACK" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_ADD, "RX_ADD" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_DELETE, "RX_DELETE" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_ACK, "RX_ACK" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_RX_CHANGE_WEIGHT, "RX_CHANGE_WEIGHT" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_REQ_NO_NSVC, "REQ_NO_NSVC" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_REQ_NSVC_ALIVE, "REQ_NSVC_ALIVE"},</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_REQ_ADD_BIND, "REQ_ADD_BIND"},</span><br><span style="color: hsl(120, 100%, 40%);">+ { NS2_SNS_EV_REQ_DELETE_BIND, "REQ_DELETE_BIND"},</span><br><span> { 0, NULL }</span><br><span> };</span><br><span> </span><br><span>@@ -187,7 +170,7 @@</span><br><span> else</span><br><span> _osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0, file, line);</span><br><span> } else {</span><br><span style="color: hsl(0, 100%, 40%);">- _osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL, file, line);</span><br><span style="color: hsl(120, 100%, 40%);">+ _osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL, file, line);</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -306,7 +289,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_REQ_NO_NSVC, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_REQ_NO_NSVC, NULL);</span><br><span> }</span><br><span> </span><br><span> static void ns2_clear_elems(struct ns2_sns_elems *elems)</span><br><span>@@ -752,7 +735,7 @@</span><br><span> OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS);</span><br><span> </span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_SIZE_ACK:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_SIZE_ACK:</span><br><span> tp = data;</span><br><span> if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) {</span><br><span> LOGPFSML(fi, LOGL_ERROR, "SNS-SIZE-ACK with cause %s\n",</span><br><span>@@ -951,7 +934,7 @@</span><br><span> OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS);</span><br><span> </span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_CONFIG_ACK:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_CONFIG_ACK:</span><br><span> tp = (struct tlv_parsed *) data;</span><br><span> if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) {</span><br><span> LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG-ACK with cause %s\n",</span><br><span>@@ -1073,8 +1056,8 @@</span><br><span> OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS);</span><br><span> </span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_CONFIG_END:</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_CONFIG:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_CONFIG_END:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_CONFIG:</span><br><span> rc = ns_sns_append_remote_eps(fi, data);</span><br><span> if (rc < 0) {</span><br><span> cause = -rc;</span><br><span>@@ -1082,7 +1065,7 @@</span><br><span> osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0);</span><br><span> return;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- if (event == GPRS_SNS_EV_RX_CONFIG_END) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (event == NS2_SNS_EV_RX_CONFIG_END) {</span><br><span> /* check if sum of data / sig weights == 0 */</span><br><span> if (ip46_weight_sum_data(&gss->remote) == 0 || ip46_weight_sum_sig(&gss->remote) == 0) {</span><br><span> cause = NS_CAUSE_INVAL_WEIGH;</span><br><span>@@ -1106,7 +1089,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* called when receiving GPRS_SNS_EV_RX_ADD in state configure */</span><br><span style="color: hsl(120, 100%, 40%);">+/* called when receiving NS2_SNS_EV_RX_ADD in state configure */</span><br><span> static void ns2_sns_st_configured_add(struct osmo_fsm_inst *fi,</span><br><span> struct ns2_sns_state *gss,</span><br><span> struct tlv_parsed *tp)</span><br><span>@@ -1349,16 +1332,16 @@</span><br><span> struct tlv_parsed *tp = data;</span><br><span> </span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_ADD:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_ADD:</span><br><span> ns2_sns_st_configured_add(fi, gss, tp);</span><br><span> break;</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_DELETE:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_DELETE:</span><br><span> ns2_sns_st_configured_delete(fi, gss, tp);</span><br><span> break;</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_CHANGE_WEIGHT:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_CHANGE_WEIGHT:</span><br><span> ns2_sns_st_configured_change(fi, gss, tp);</span><br><span> break;</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_REQ_NSVC_ALIVE:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_REQ_NSVC_ALIVE:</span><br><span> osmo_timer_del(&fi->timer);</span><br><span> break;</span><br><span> }</span><br><span>@@ -1395,7 +1378,7 @@</span><br><span> .action = ns2_sns_st_bss_unconfigured,</span><br><span> },</span><br><span> [GPRS_SNS_ST_BSS_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- .in_event_mask = S(GPRS_SNS_EV_RX_SIZE_ACK),</span><br><span style="color: hsl(120, 100%, 40%);">+ .in_event_mask = S(NS2_SNS_EV_RX_SIZE_ACK),</span><br><span> .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) |</span><br><span> S(GPRS_SNS_ST_BSS_SIZE) |</span><br><span> S(GPRS_SNS_ST_BSS_CONFIG_BSS),</span><br><span>@@ -1404,7 +1387,7 @@</span><br><span> .onenter = ns2_sns_st_bss_size_onenter,</span><br><span> },</span><br><span> [GPRS_SNS_ST_BSS_CONFIG_BSS] = {</span><br><span style="color: hsl(0, 100%, 40%);">- .in_event_mask = S(GPRS_SNS_EV_RX_CONFIG_ACK),</span><br><span style="color: hsl(120, 100%, 40%);">+ .in_event_mask = S(NS2_SNS_EV_RX_CONFIG_ACK),</span><br><span> .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) |</span><br><span> S(GPRS_SNS_ST_BSS_CONFIG_BSS) |</span><br><span> S(GPRS_SNS_ST_BSS_CONFIG_SGSN) |</span><br><span>@@ -1414,8 +1397,8 @@</span><br><span> .onenter = ns2_sns_st_bss_config_bss_onenter,</span><br><span> },</span><br><span> [GPRS_SNS_ST_BSS_CONFIG_SGSN] = {</span><br><span style="color: hsl(0, 100%, 40%);">- .in_event_mask = S(GPRS_SNS_EV_RX_CONFIG) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_RX_CONFIG_END),</span><br><span style="color: hsl(120, 100%, 40%);">+ .in_event_mask = S(NS2_SNS_EV_RX_CONFIG) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_RX_CONFIG_END),</span><br><span> .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) |</span><br><span> S(GPRS_SNS_ST_BSS_CONFIG_SGSN) |</span><br><span> S(GPRS_SNS_ST_CONFIGURED) |</span><br><span>@@ -1425,10 +1408,10 @@</span><br><span> .onenter = ns2_sns_st_bss_config_sgsn_onenter,</span><br><span> },</span><br><span> [GPRS_SNS_ST_CONFIGURED] = {</span><br><span style="color: hsl(0, 100%, 40%);">- .in_event_mask = S(GPRS_SNS_EV_RX_ADD) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_RX_DELETE) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_RX_CHANGE_WEIGHT) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_REQ_NSVC_ALIVE),</span><br><span style="color: hsl(120, 100%, 40%);">+ .in_event_mask = S(NS2_SNS_EV_RX_ADD) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_RX_DELETE) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_RX_CHANGE_WEIGHT) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_REQ_NSVC_ALIVE),</span><br><span> .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) |</span><br><span> S(GPRS_SNS_ST_BSS_SIZE),</span><br><span> .name = "CONFIGURED",</span><br><span>@@ -1481,11 +1464,11 @@</span><br><span> struct gprs_ns2_vc *nsvc, *nsvc2;</span><br><span> </span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_REQ_ADD_BIND:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_REQ_ADD_BIND:</span><br><span> sbind = data;</span><br><span> switch (fi->state) {</span><br><span> case GPRS_SNS_ST_UNCONFIGURED:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL);</span><br><span> break;</span><br><span> case GPRS_SNS_ST_BSS_SIZE:</span><br><span> /* TODO: add the ip4 element to the list */</span><br><span>@@ -1497,7 +1480,7 @@</span><br><span> break;</span><br><span> }</span><br><span> break;</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_REQ_DELETE_BIND:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_REQ_DELETE_BIND:</span><br><span> sbind = data;</span><br><span> switch (fi->state) {</span><br><span> case GPRS_SNS_ST_UNCONFIGURED:</span><br><span>@@ -1582,16 +1565,16 @@</span><br><span> struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv;</span><br><span> struct gprs_ns2_nse *nse = nse_inst_from_fi(fi);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* reset when receiving GPRS_SNS_EV_REQ_NO_NSVC */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* reset when receiving NS2_SNS_EV_REQ_NO_NSVC */</span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_REQ_NO_NSVC:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_REQ_NO_NSVC:</span><br><span> /* ignore reselection running */</span><br><span> if (gss->reselection_running)</span><br><span> break;</span><br><span> </span><br><span> sns_failed(fi, "no remaining NSVC, resetting SNS FSM");</span><br><span> break;</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_REQ_SELECT_ENDPOINT:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_REQ_SELECT_ENDPOINT:</span><br><span> /* tear down previous state</span><br><span> * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */</span><br><span> gss->reselection_running = true;</span><br><span>@@ -1629,10 +1612,10 @@</span><br><span> .name = "GPRS-NS2-SNS-BSS",</span><br><span> .states = ns2_sns_bss_states,</span><br><span> .num_states = ARRAY_SIZE(ns2_sns_bss_states),</span><br><span style="color: hsl(0, 100%, 40%);">- .allstate_event_mask = S(GPRS_SNS_EV_REQ_NO_NSVC) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_REQ_SELECT_ENDPOINT) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_REQ_ADD_BIND) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_REQ_DELETE_BIND),</span><br><span style="color: hsl(120, 100%, 40%);">+ .allstate_event_mask = S(NS2_SNS_EV_REQ_NO_NSVC) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_REQ_SELECT_ENDPOINT) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_REQ_ADD_BIND) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_REQ_DELETE_BIND),</span><br><span> .allstate_action = ns2_sns_st_all_action_bss,</span><br><span> .cleanup = NULL,</span><br><span> .timer_cb = ns2_sns_fsm_bss_timer_cb,</span><br><span>@@ -1706,31 +1689,31 @@</span><br><span> </span><br><span> switch (nsh->pdu_type) {</span><br><span> case SNS_PDUT_SIZE:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_SIZE, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_SIZE, tp);</span><br><span> break;</span><br><span> case SNS_PDUT_SIZE_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_SIZE_ACK, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_SIZE_ACK, tp);</span><br><span> break;</span><br><span> case SNS_PDUT_CONFIG:</span><br><span> if (nsh->data[0] & 0x01)</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_CONFIG_END, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_CONFIG_END, tp);</span><br><span> else</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_CONFIG, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_CONFIG, tp);</span><br><span> break;</span><br><span> case SNS_PDUT_CONFIG_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_CONFIG_ACK, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_CONFIG_ACK, tp);</span><br><span> break;</span><br><span> case SNS_PDUT_ADD:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_ADD, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_ADD, tp);</span><br><span> break;</span><br><span> case SNS_PDUT_DELETE:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_DELETE, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_DELETE, tp);</span><br><span> break;</span><br><span> case SNS_PDUT_CHANGE_WEIGHT:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_CHANGE_WEIGHT, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_CHANGE_WEIGHT, tp);</span><br><span> break;</span><br><span> case SNS_PDUT_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_ACK, tp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_ACK, tp);</span><br><span> break;</span><br><span> default:</span><br><span> LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei,</span><br><span>@@ -1873,7 +1856,7 @@</span><br><span> </span><br><span> llist_add_tail(&endpoint->list, &gss->sns_endpoints);</span><br><span> if (do_selection)</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL);</span><br><span> </span><br><span> return 0;</span><br><span> }</span><br><span>@@ -1909,7 +1892,7 @@</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* gprs_ns2_free_nsvcs() will trigger GPRS_SNS_EV_REQ_NO_NSVC on the last NS-VC</span><br><span style="color: hsl(120, 100%, 40%);">+ /* gprs_ns2_free_nsvcs() will trigger NS2_SNS_EV_REQ_NO_NSVC on the last NS-VC</span><br><span> * and restart SNS SIZE procedure which selects a new initial */</span><br><span> LOGNSE(nse, LOGL_INFO, "Current in-use SNS endpoint is being removed."</span><br><span> "Closing all NS-VC and restart SNS-SIZE procedure"</span><br><span>@@ -1983,7 +1966,7 @@</span><br><span> </span><br><span> if (alive) {</span><br><span> gss->alive = true;</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_NSVC_ALIVE, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_NSVC_ALIVE, NULL);</span><br><span> } else {</span><br><span> /* is there at least another alive nsvc? */</span><br><span> llist_for_each_entry(tmp, &nse->nsvc, list) {</span><br><span>@@ -1993,7 +1976,7 @@</span><br><span> </span><br><span> /* all NS-VC have failed */</span><br><span> gss->alive = false;</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_NO_NSVC, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_NO_NSVC, NULL);</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -2023,7 +2006,7 @@</span><br><span> tmp->bind = bind;</span><br><span> llist_add_tail(&tmp->list, &gss->binds);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_ADD_BIND, tmp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_ADD_BIND, tmp);</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -2057,7 +2040,7 @@</span><br><span> if (!found)</span><br><span> return -ENOENT;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_DELETE_BIND, tmp);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_DELETE_BIND, tmp);</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -2095,8 +2078,8 @@</span><br><span> OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_SGSN);</span><br><span> </span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_CONFIG:</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_CONFIG_END:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_CONFIG:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_CONFIG_END:</span><br><span> rc = ns_sns_append_remote_eps(fi, data);</span><br><span> if (rc < 0) {</span><br><span> cause = -rc;</span><br><span>@@ -2105,7 +2088,7 @@</span><br><span> return;</span><br><span> }</span><br><span> /* only change state if last CONFIG was received */</span><br><span style="color: hsl(0, 100%, 40%);">- if (event == GPRS_SNS_EV_RX_CONFIG_END) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (event == NS2_SNS_EV_RX_CONFIG_END) {</span><br><span> /* ensure sum of data weight / sig weights is > 0 */</span><br><span> if (ip46_weight_sum_data(&gss->remote) == 0 || ip46_weight_sum_sig(&gss->remote) == 0) {</span><br><span> cause = NS_CAUSE_INVAL_WEIGH;</span><br><span>@@ -2144,7 +2127,7 @@</span><br><span> OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_SGSN);</span><br><span> </span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_CONFIG_ACK:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_CONFIG_ACK:</span><br><span> tp = data;</span><br><span> if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) {</span><br><span> LOGPFSML(fi, LOGL_ERROR, "Rx SNS-CONFIG-ACK with cause %s\n",</span><br><span>@@ -2173,8 +2156,8 @@</span><br><span> .action = ns2_sns_st_sgsn_unconfigured,</span><br><span> },</span><br><span> [GPRS_SNS_ST_SGSN_WAIT_CONFIG] = {</span><br><span style="color: hsl(0, 100%, 40%);">- .in_event_mask = S(GPRS_SNS_EV_RX_CONFIG) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_RX_CONFIG_END),</span><br><span style="color: hsl(120, 100%, 40%);">+ .in_event_mask = S(NS2_SNS_EV_RX_CONFIG) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_RX_CONFIG_END),</span><br><span> .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) |</span><br><span> S(GPRS_SNS_ST_SGSN_WAIT_CONFIG) |</span><br><span> S(GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK),</span><br><span>@@ -2182,7 +2165,7 @@</span><br><span> .action = ns2_sns_st_sgsn_wait_config,</span><br><span> },</span><br><span> [GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK] = {</span><br><span style="color: hsl(0, 100%, 40%);">- .in_event_mask = S(GPRS_SNS_EV_RX_CONFIG_ACK),</span><br><span style="color: hsl(120, 100%, 40%);">+ .in_event_mask = S(NS2_SNS_EV_RX_CONFIG_ACK),</span><br><span> .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) |</span><br><span> S(GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK) |</span><br><span> S(GPRS_SNS_ST_CONFIGURED),</span><br><span>@@ -2191,10 +2174,10 @@</span><br><span> .onenter = ns2_sns_st_sgsn_wait_config_ack_onenter,</span><br><span> },</span><br><span> [GPRS_SNS_ST_CONFIGURED] = {</span><br><span style="color: hsl(0, 100%, 40%);">- .in_event_mask = S(GPRS_SNS_EV_RX_ADD) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_RX_DELETE) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_RX_CHANGE_WEIGHT) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_REQ_NSVC_ALIVE),</span><br><span style="color: hsl(120, 100%, 40%);">+ .in_event_mask = S(NS2_SNS_EV_RX_ADD) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_RX_DELETE) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_RX_CHANGE_WEIGHT) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_REQ_NSVC_ALIVE),</span><br><span> .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED),</span><br><span> .name = "CONFIGURED",</span><br><span> /* shared with BSS side; once configured there's no difference */</span><br><span>@@ -2239,7 +2222,7 @@</span><br><span> OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_SGSN);</span><br><span> </span><br><span> switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_SNS_EV_RX_SIZE:</span><br><span style="color: hsl(120, 100%, 40%);">+ case NS2_SNS_EV_RX_SIZE:</span><br><span> tp = (struct tlv_parsed *) data;</span><br><span> /* check for mandatory / conditional IEs */</span><br><span> if (!TLVP_PRES_LEN(tp, NS_IE_RESET_FLAG, 1) ||</span><br><span>@@ -2339,10 +2322,10 @@</span><br><span> .name = "GPRS-NS2-SNS-SGSN",</span><br><span> .states = ns2_sns_sgsn_states,</span><br><span> .num_states = ARRAY_SIZE(ns2_sns_sgsn_states),</span><br><span style="color: hsl(0, 100%, 40%);">- .allstate_event_mask = S(GPRS_SNS_EV_RX_SIZE) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_REQ_NO_NSVC) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_REQ_ADD_BIND) |</span><br><span style="color: hsl(0, 100%, 40%);">- S(GPRS_SNS_EV_REQ_DELETE_BIND),</span><br><span style="color: hsl(120, 100%, 40%);">+ .allstate_event_mask = S(NS2_SNS_EV_RX_SIZE) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_REQ_NO_NSVC) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_REQ_ADD_BIND) |</span><br><span style="color: hsl(120, 100%, 40%);">+ S(NS2_SNS_EV_REQ_DELETE_BIND),</span><br><span> .allstate_action = ns2_sns_st_all_action_sgsn,</span><br><span> .cleanup = NULL,</span><br><span> .timer_cb = ns2_sns_fsm_sgsn_timer_cb,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/25144">change 25144</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmocore/+/25144"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc </div>
<div style="display:none"> Gerrit-Change-Number: 25144 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-CC: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>