<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/22643">View Change</a></p><div style="white-space:pre-wrap">Approvals:
pespin: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
Jenkins Builder: Verified
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gprs_ns2_vc_fsm: rename ST_ALIVE -> ST_RECOVERING<br><br>ST_ALIVE isn't quite clear. This state means this NS-VC is still dead.<br>ST_ALIVE is used for NS-VC with vc_mode ALIVE (e.g. UDP NS-VC). It's<br>the first state when the remote hasn't yet answered or when<br>the NS-VC lost ALIVEs.<br><br>Related: OS#4958<br>Change-Id: I0b29e8ce6444546d90bde68b1f957f1013238784<br>---<br>M src/gb/gprs_ns2_vc_fsm.c<br>1 file changed, 17 insertions(+), 17 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c</span><br><span>index 6314408..f6424de 100644</span><br><span>--- a/src/gb/gprs_ns2_vc_fsm.c</span><br><span>+++ b/src/gb/gprs_ns2_vc_fsm.c</span><br><span>@@ -81,13 +81,13 @@</span><br><span> * - UNCONFIGURED -> RESET -> BLOCK -> UNBLOCKED</span><br><span> *</span><br><span> * Without RESET/BLOCK, the state should follow:</span><br><span style="color: hsl(0, 100%, 40%);">- * - UNCONFIGURED -> ALIVE -> UNBLOCKED</span><br><span style="color: hsl(120, 100%, 40%);">+ * - UNCONFIGURED -> RECOVERY -> UNBLOCKED</span><br><span> *</span><br><span> * The UNBLOCKED and TEST states are used to send ALIVE PDU using the timeout Tns-test and Tns-alive.</span><br><span> * UNBLOCKED -> TEST: on expire of Tns-Test, send Alive PDU.</span><br><span> * TEST -> UNBLOCKED: on receive of Alive_Ack PDU, go into UNBLOCKED.</span><br><span> *</span><br><span style="color: hsl(0, 100%, 40%);">- * The ALIVE state is used as intermediate, because a VC is only valid if it received an Alive ACK when</span><br><span style="color: hsl(120, 100%, 40%);">+ * The RECOVERY state is used as intermediate, because a VC is only valid if it received an Alive ACK when</span><br><span> * not using RESET/BLOCK procedure.</span><br><span> */</span><br><span> </span><br><span>@@ -97,7 +97,7 @@</span><br><span> GPRS_NS2_ST_BLOCKED,</span><br><span> GPRS_NS2_ST_UNBLOCKED, /* allows sending NS_UNITDATA */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- GPRS_NS2_ST_ALIVE, /* only used when not using RESET/BLOCK procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ GPRS_NS2_ST_RECOVERING, /* only used when not using RESET/BLOCK procedure */</span><br><span> };</span><br><span> </span><br><span> enum gprs_ns2_vc_event {</span><br><span>@@ -217,7 +217,7 @@</span><br><span> if (priv->nsvc->mode == GPRS_NS2_VC_MODE_BLOCKRESET) {</span><br><span> osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0);</span><br><span> } else {</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RECOVERING, nsi->timeout[NS_TOUT_TNS_ALIVE], 0);</span><br><span> }</span><br><span> }</span><br><span> break;</span><br><span>@@ -244,7 +244,7 @@</span><br><span> case GPRS_NS2_EV_REQ_START:</span><br><span> switch (priv->nsvc->mode) {</span><br><span> case GPRS_NS2_VC_MODE_ALIVE:</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], NS_TOUT_TNS_ALIVE);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RECOVERING, nsi->timeout[NS_TOUT_TNS_ALIVE], NS_TOUT_TNS_ALIVE);</span><br><span> break;</span><br><span> case GPRS_NS2_VC_MODE_BLOCKRESET:</span><br><span> osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], NS_TOUT_TNS_RESET);</span><br><span>@@ -422,7 +422,7 @@</span><br><span> priv->alive.mode = NS_TOUT_TNS_TEST;</span><br><span> osmo_timer_schedule(&priv->alive.timer, nsi->timeout[NS_TOUT_TNS_TEST], 0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if (old_state != GPRS_NS2_ST_ALIVE)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (old_state != GPRS_NS2_ST_RECOVERING)</span><br><span> priv->N = 0;</span><br><span> </span><br><span> ns2_tx_alive(priv->nsvc);</span><br><span>@@ -437,7 +437,7 @@</span><br><span> static const struct osmo_fsm_state ns2_vc_states[] = {</span><br><span> [GPRS_NS2_ST_UNCONFIGURED] = {</span><br><span> .in_event_mask = S(GPRS_NS2_EV_REQ_START),</span><br><span style="color: hsl(0, 100%, 40%);">- .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE),</span><br><span style="color: hsl(120, 100%, 40%);">+ .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_RECOVERING),</span><br><span> .name = "UNCONFIGURED",</span><br><span> .action = ns2_st_unconfigured,</span><br><span> .onenter = ns2_st_unconfigured_onenter,</span><br><span>@@ -465,7 +465,7 @@</span><br><span> [GPRS_NS2_ST_UNBLOCKED] = {</span><br><span> .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_UNBLOCK_ACK) |</span><br><span> S(GPRS_NS2_EV_RX_UNBLOCK),</span><br><span style="color: hsl(0, 100%, 40%);">- .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE) |</span><br><span style="color: hsl(120, 100%, 40%);">+ .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_RECOVERING) |</span><br><span> S(GPRS_NS2_ST_BLOCKED) |</span><br><span> S(GPRS_NS2_ST_UNCONFIGURED),</span><br><span> .name = "UNBLOCKED",</span><br><span>@@ -473,13 +473,13 @@</span><br><span> .onenter = ns2_st_unblocked_on_enter,</span><br><span> },</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* ST_ALIVE is only used on VC without RESET/BLOCK */</span><br><span style="color: hsl(0, 100%, 40%);">- [GPRS_NS2_ST_ALIVE] = {</span><br><span style="color: hsl(120, 100%, 40%);">+ /* ST_RECOVERING is only used on VC without RESET/BLOCK */</span><br><span style="color: hsl(120, 100%, 40%);">+ [GPRS_NS2_ST_RECOVERING] = {</span><br><span> .in_event_mask = S(GPRS_NS2_EV_RX_ALIVE_ACK),</span><br><span style="color: hsl(0, 100%, 40%);">- .out_state_mask = S(GPRS_NS2_ST_ALIVE) |</span><br><span style="color: hsl(120, 100%, 40%);">+ .out_state_mask = S(GPRS_NS2_ST_RECOVERING) |</span><br><span> S(GPRS_NS2_ST_UNBLOCKED) |</span><br><span> S(GPRS_NS2_ST_UNCONFIGURED),</span><br><span style="color: hsl(0, 100%, 40%);">- .name = "ALIVE",</span><br><span style="color: hsl(120, 100%, 40%);">+ .name = "RECOVERING",</span><br><span> .action = ns2_st_alive,</span><br><span> .onenter = ns2_st_alive_onenter,</span><br><span> .onleave = ns2_st_alive_onleave,</span><br><span>@@ -523,14 +523,14 @@</span><br><span> }</span><br><span> }</span><br><span> break;</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_NS2_ST_ALIVE:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GPRS_NS2_ST_RECOVERING:</span><br><span> if (priv->initiate_reset) {</span><br><span> priv->N++;</span><br><span> if (priv->N <= nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]) {</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, 0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RECOVERING, 0, 0);</span><br><span> } else {</span><br><span> priv->N = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, 0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RECOVERING, 0, 0);</span><br><span> }</span><br><span> break;</span><br><span> }</span><br><span>@@ -606,7 +606,7 @@</span><br><span> break;</span><br><span> case GPRS_NS2_EV_RX_ALIVE_ACK:</span><br><span> /* for VCs without RESET/BLOCK/UNBLOCK, the connections comes after ALIVE_ACK unblocked */</span><br><span style="color: hsl(0, 100%, 40%);">- if (fi->state == GPRS_NS2_ST_ALIVE)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (fi->state == GPRS_NS2_ST_RECOVERING)</span><br><span> ns2_st_alive(fi, event, data);</span><br><span> else</span><br><span> recv_test_procedure(fi);</span><br><span>@@ -630,7 +630,7 @@</span><br><span> 0, msg);</span><br><span> break;</span><br><span> /* ALIVE can receive UNITDATA if the ALIVE_ACK is lost */</span><br><span style="color: hsl(0, 100%, 40%);">- case GPRS_NS2_ST_ALIVE:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GPRS_NS2_ST_RECOVERING:</span><br><span> case GPRS_NS2_ST_UNBLOCKED:</span><br><span> ns2_recv_unitdata(fi, msg);</span><br><span> return;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/22643">change 22643</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/+/22643"/><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: I0b29e8ce6444546d90bde68b1f957f1013238784 </div>
<div style="display:none"> Gerrit-Change-Number: 22643 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </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: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>