This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
daniel gerrit-no-reply at lists.osmocom.orgdaniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21240 ) Change subject: ns2: Split initiater into init_reset and init_block ...................................................................... ns2: Split initiater into init_reset and init_block Change-Id: Iff5aff0cf8d19d9c718dd11c4e731ced2aeb16ba --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 27 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/21240/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 0d30f12..0dcaf5e 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -55,9 +55,10 @@ struct gprs_ns2_vc *nsvc; /* how often the timer was triggered */ int N; - /* The initiater is responsible to UNBLOCK the VC. The BSS is usually the initiater. + /* The initiator is responsible to UNBLOCK the VC. The BSS is usually the initiator. * It can change while runtime. The side which blocks an unblocked side.*/ - bool initiater; + bool init_block; + bool init_reset; /* the alive counter is present in all states */ struct { @@ -241,7 +242,7 @@ if (old_state != GPRS_NS2_ST_RESET) priv->N = 0; - if (priv->initiater) + if (priv->init_reset) ns2_tx_reset(priv->nsvc, NS_CAUSE_OM_INTERVENTION); stop_test_procedure(priv); @@ -253,7 +254,7 @@ struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; - if (priv->initiater) { + if (priv->init_reset) { switch (event) { case GPRS_NS2_EV_RESET_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, @@ -279,7 +280,7 @@ if (old_state != GPRS_NS2_ST_BLOCKED) priv->N = 0; - if (priv->initiater) + if (priv->init_block) ns2_tx_unblock(priv->nsvc); start_test_procedure(priv); @@ -289,7 +290,7 @@ { struct gprs_ns2_vc_priv *priv = fi->priv; - if (priv->initiater) { + if (priv->init_block) { switch (event) { case GPRS_NS2_EV_BLOCK: /* TODO: BLOCK is a UNBLOCK_NACK */ @@ -331,7 +332,7 @@ switch (event) { case GPRS_NS2_EV_BLOCK: - priv->initiater = false; + priv->init_block = false; ns2_tx_block_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, 0, 2); @@ -419,10 +420,10 @@ struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; - if (priv->initiater) { - /* PCU timeouts */ - switch (fi->state) { - case GPRS_NS2_ST_RESET: + /* PCU timeouts */ + switch (fi->state) { + case GPRS_NS2_ST_RESET: + if (priv->init_reset) { priv->N++; if (priv->N <= nsi->timeout[NS_TOUT_TNS_RESET_RETRIES]) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); @@ -430,16 +431,20 @@ priv->N = 0; osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); } - break; - case GPRS_NS2_ST_BLOCKED: + } + break; + case GPRS_NS2_ST_BLOCKED: + if (priv->init_block) { priv->N++; if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); } else { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); } - break; - case GPRS_NS2_ST_ALIVE: + } + break; + case GPRS_NS2_ST_ALIVE: + if (priv->init_reset) { priv->N++; if (priv->N <= nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, 0, 0); @@ -449,6 +454,7 @@ } break; } + break; } return 0; } @@ -502,7 +508,7 @@ /* move the FSM into reset */ if (fi->state != GPRS_NS2_ST_RESET) { - priv->initiater = false; + priv->init_reset = false; osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], NS_TOUT_TNS_RESET); } /* pass the event down into FSM action */ @@ -534,7 +540,7 @@ switch (fi->state) { case GPRS_NS2_ST_BLOCKED: /* 7.2.1: the BLOCKED_ACK might be lost */ - if (priv->initiater) { + if (priv->init_block) { gprs_ns2_recv_unitdata(fi, msg); return; } @@ -585,11 +591,11 @@ * \param ctx * \param vc * \param id a char representation of the virtual curcuit - * \param initiater initiater is the site which starts the connection. Usually the BSS. + * \param initiator initiator is the site which starts the connection. Usually the BSS. * \return NULL on error, otherwise the fsm */ struct osmo_fsm_inst *gprs_ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, - const char *id, bool initiater) + const char *id, bool initiator) { struct osmo_fsm_inst *fi; struct gprs_ns2_vc_priv *priv; @@ -601,7 +607,8 @@ nsvc->fi = fi; priv = fi->priv = talloc_zero(fi, struct gprs_ns2_vc_priv); priv->nsvc = nsvc; - priv->initiater = initiater; + priv->init_reset = initiator; + priv->init_block = initiator; osmo_timer_setup(&priv->alive.timer, alive_timeout_handler, fi); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21240 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iff5aff0cf8d19d9c718dd11c4e731ced2aeb16ba Gerrit-Change-Number: 21240 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201118/7c7fef16/attachment.htm>