Attention is currently required from: laforge, osmith, pespin.
Hello Jenkins Builder, laforge, osmith,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/37667?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Code-Review+1 by laforge, Code-Review+1 by osmith, Verified-1 by Jenkins Builder
Change subject: Handle rx UpdatePDPCtxReq with Tunnel Direct Flags EI=1
......................................................................
Handle rx UpdatePDPCtxReq with Tunnel Direct Flags EI=1
GGSN informed us that it received an Error Indication when sending DL data to the RNC.
This probably means the RNC lost its state, aka crashed or was rebooted.
Mark the subscriber as PMM-IDLE, release Iu and point GTPU back to SGSN.
Then page the UE so it hopefully re-creates the state at the RNC.
Related: OS#6512
Related: OS#6519
Related: SYS#5435
Depends: osmo-ggsn.git Change-Id Ic80a9a928c55b6ff85be96014920bb42793cb943
Change-Id: I76d4c387730fdbfb9e7e0dd23a5afb9e762228b1
---
M TODO-RELEASE
M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h
M include/osmocom/sgsn/gtp.h
M src/sgsn/gprs_mm_state_iu_fsm.c
M src/sgsn/sgsn_libgtp.c
5 files changed, 116 insertions(+), 31 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/67/37667/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/37667?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn
Gerrit-Branch: master
Gerrit-Change-Id: I76d4c387730fdbfb9e7e0dd23a5afb9e762228b1
Gerrit-Change-Number: 37667
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/37685?usp=email )
Change subject: pySim-shell: Support other ADMx values beyond ADM1 from 'verify_adm'
......................................................................
pySim-shell: Support other ADMx values beyond ADM1 from 'verify_adm'
Change-Id: Icce6903c1e449889f8bc5003ccfe6af767a26d44
---
M pySim-shell.py
1 file changed, 29 insertions(+), 11 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/85/37685/1
diff --git a/pySim-shell.py b/pySim-shell.py
index e9fc637..174df62 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -55,6 +55,7 @@
from pySim.card_handler import CardHandler, CardHandlerAuto
from pySim.filesystem import CardMF, CardDF, CardADF
+from pySim.ts_102_221 import pin_names
from pySim.ts_102_222 import Ts102222Commands
from pySim.gsm_r import DF_EIRENE
from pySim.cat import ProactiveCommand
@@ -824,37 +825,45 @@
self._cmd.poutput("no description available")
verify_adm_parser = argparse.ArgumentParser()
- verify_adm_parser.add_argument('ADM1', nargs='?', type=is_hexstr_or_decimal,
- help='ADM1 pin value. If none given, CSV file will be queried')
+ verify_adm_parser.add_argument('ADM', nargs='?', type=is_hexstr_or_decimal,
+ help='ADM pin value. If none given, CSV file will be queried')
verify_adm_parser.add_argument('--pin-is-hex', action='store_true',
- help='ADM1 pin value is specified as hex-string (not decimal)')
+ help='ADM pin value is specified as hex-string (not decimal)')
+ verify_adm_parser.add_argument('--adm-type',
+ choices=[x for x in pin_names.values() if x.startswith('ADM')],
+ help='Override ADM number. Default is card-model-specific, usually 1')
@cmd2.with_argparser(verify_adm_parser)
def do_verify_adm(self, opts):
"""Verify the ADM (Administrator) PIN specified as argument. This is typically needed in order
- to get write/update permissions to most of the files on SIM cards. Currently only ADM1 is supported.
+ to get write/update permissions to most of the files on SIM cards.
"""
- if opts.ADM1:
+ if opts.adm_type:
+ adm_chv_num = pin_names.inverse[opts.adm_type]
+ else:
+ adm_chv_num = self._cmd.card._adm_chv_num
+ if opts.ADM:
# use specified ADM-PIN
if opts.pin_is_hex:
- pin_adm = sanitize_pin_adm(None, opts.ADM1)
+ pin_adm = sanitize_pin_adm(None, opts.ADM)
else:
- pin_adm = sanitize_pin_adm(opts.ADM1)
+ pin_adm = sanitize_pin_adm(opts.ADM)
else:
iccid = self._cmd.rs.identity['ICCID']
+ adm_type = opts.adm_type or 'ADM1'
# try to find an ADM-PIN if none is specified
- result = card_key_provider_get_field('ADM1', key='ICCID', value=iccid)
+ result = card_key_provider_get_field(adm_type, key='ICCID', value=iccid)
if opts.pin_is_hex:
pin_adm = sanitize_pin_adm(None, result)
else:
pin_adm = sanitize_pin_adm(result)
if pin_adm:
- self._cmd.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, iccid))
+ self._cmd.poutput("found %s '%s' for ICCID '%s'" % (adm_type, result, iccid))
else:
- raise ValueError("cannot find ADM-PIN for ICCID '%s'" % (iccid))
+ raise ValueError("cannot find %s for ICCID '%s'" % (adm_type, iccid))
if pin_adm:
- self._cmd.lchan.scc.verify_chv(self._cmd.card._adm_chv_num, h2b(pin_adm))
+ self._cmd.lchan.scc.verify_chv(adm_chv_num, h2b(pin_adm))
else:
raise ValueError("error: cannot authenticate, no adm-pin!")
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/37685?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Icce6903c1e449889f8bc5003ccfe6af767a26d44
Gerrit-Change-Number: 37685
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: newchange
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/37678?usp=email )
Change subject: X2001 timeout: Update UL TBF's dl_ass_fsm state
......................................................................
X2001 timeout: Update UL TBF's dl_ass_fsm state
X2001 is the timer triggered after 2 seconds when a DL TBF is being
assigned but the assignment never completes.
A DL TBF can be PACCH-assigned using either:
* Another DL TBF (usually the same object when upgrading to multislot)
* A UL TBF.
The active UL/DL TBF doing the assignment of thew new DL TBF is the one
holding the assignment state in its tbf.dl_ass_fsm.
That FSM is checked by the scheduler to figure out whether a Pkt DL Ass
needs to be transmitted.
if the new DL TBF being assigned was freed due to X2001, then the
tbf.dl_ass_fsm of the TBF doing the assignment was not updating, meaning
it was trying to send Pkt DL Ass by the scheduler, but it was erroring
(properly) by a check in create_packet_dl_assign() validating a DL TBF
(the oen being assigned) exists in the MS.
Change-Id: I42cc264b1b77bf8d91ec01a18d8985e182a20024
---
M src/tbf_dl_ass_fsm.c
M src/tbf_dl_ass_fsm.h
M src/tbf_dl_fsm.c
3 files changed, 50 insertions(+), 2 deletions(-)
Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
osmith: Looks good to me, but someone else must approve
diff --git a/src/tbf_dl_ass_fsm.c b/src/tbf_dl_ass_fsm.c
index d811b71..1b6d97b 100644
--- a/src/tbf_dl_ass_fsm.c
+++ b/src/tbf_dl_ass_fsm.c
@@ -42,6 +42,7 @@
{ TBF_DL_ASS_EV_CREATE_RLCMAC_MSG, "CREATE_RLCMAC_MSG" },
{ TBF_DL_ASS_EV_RX_ASS_CTRL_ACK, "RX_ASS_CTRL_ACK" },
{ TBF_DL_ASS_EV_ASS_POLL_TIMEOUT, "ASS_POLL_TIMEOUT" },
+ { TBF_DL_ASS_EV_ABORT, "ABORT" },
{ 0, NULL }
};
@@ -163,6 +164,10 @@
return;
tbf_dl_ass_fsm_state_chg(fi, TBF_DL_ASS_WAIT_ACK);
break;
+ case TBF_DL_ASS_EV_ABORT:
+ /* Cancel pending schedule for Pkt Ul Ass: */
+ tbf_dl_ass_fsm_state_chg(fi, TBF_DL_ASS_NONE);
+ break;
default:
OSMO_ASSERT(0);
}
@@ -183,6 +188,9 @@
/* Reschedule Pkt Dl Ass */
tbf_dl_ass_fsm_state_chg(fi, TBF_DL_ASS_SEND_ASS);
break;
+ case TBF_DL_ASS_EV_ABORT:
+ tbf_dl_ass_fsm_state_chg(fi, TBF_DL_ASS_NONE);
+ break;
default:
OSMO_ASSERT(0);
}
@@ -208,7 +216,8 @@
.onenter = st_none_on_enter,
},
[TBF_DL_ASS_SEND_ASS] = {
- .in_event_mask = X(TBF_DL_ASS_EV_CREATE_RLCMAC_MSG),
+ .in_event_mask = X(TBF_DL_ASS_EV_CREATE_RLCMAC_MSG) |
+ X(TBF_DL_ASS_EV_ABORT),
.out_state_mask =
X(TBF_DL_ASS_WAIT_ACK) |
X(TBF_DL_ASS_NONE),
@@ -218,7 +227,8 @@
[TBF_DL_ASS_WAIT_ACK] = {
.in_event_mask =
X(TBF_DL_ASS_EV_RX_ASS_CTRL_ACK) |
- X(TBF_DL_ASS_EV_ASS_POLL_TIMEOUT),
+ X(TBF_DL_ASS_EV_ASS_POLL_TIMEOUT) |
+ X(TBF_DL_ASS_EV_ABORT),
.out_state_mask =
X(TBF_DL_ASS_NONE) |
X(TBF_DL_ASS_SEND_ASS),
diff --git a/src/tbf_dl_ass_fsm.h b/src/tbf_dl_ass_fsm.h
index cb7be8d..56c71c4 100644
--- a/src/tbf_dl_ass_fsm.h
+++ b/src/tbf_dl_ass_fsm.h
@@ -28,6 +28,7 @@
TBF_DL_ASS_EV_CREATE_RLCMAC_MSG, /* Scheduler wants to gen+Tx the Ass (rej): data=tbf_dl_ass_ev_create_rlcmac_msg_ctx */
TBF_DL_ASS_EV_RX_ASS_CTRL_ACK, /* Received CTRL ACK answering poll set on Pkt Dl Ass */
TBF_DL_ASS_EV_ASS_POLL_TIMEOUT, /* Pdch Ul Controller signals timeout for poll set on Pkt Dl Ass */
+ TBF_DL_ASS_EV_ABORT, /* DL TBF being assigned was internally released */
};
enum tbf_dl_ass_fsm_states {
diff --git a/src/tbf_dl_fsm.c b/src/tbf_dl_fsm.c
index 917c4b1..400c242 100644
--- a/src/tbf_dl_fsm.c
+++ b/src/tbf_dl_fsm.c
@@ -411,6 +411,10 @@
static int tbf_dl_fsm_timer_cb(struct osmo_fsm_inst *fi)
{
struct tbf_dl_fsm_ctx *ctx = (struct tbf_dl_fsm_ctx *)fi->priv;
+ struct GprsMs *ms = NULL;
+ struct gprs_rlcmac_ul_tbf *ul_tbf = NULL;
+ struct gprs_rlcmac_tbf *tbf = NULL;
+
switch (fi->T) {
case -2002:
handle_timeout_X2002(fi);
@@ -419,7 +423,14 @@
tbf_dl_fsm_state_chg(fi, TBF_ST_WAIT_REUSE_TFI);
break;
case -2001:
+ ms = tbf_ms(ctx->tbf);
+ ul_tbf = ms_ul_tbf(ms);
+ tbf = ul_tbf_as_tbf(ul_tbf);
LOGPTBFDL(ctx->dl_tbf, LOGL_NOTICE, "releasing due to PACCH assignment timeout.\n");
+ /* If a UL TBF is trying to assign us, notify it that we are
+ * dying so it avoids continuing the assignment. */
+ if (ul_tbf && tbf_dl_ass_fi(tbf)->state != TBF_DL_ASS_NONE)
+ osmo_fsm_inst_dispatch(tbf_dl_ass_fi(tbf), TBF_DL_ASS_EV_ABORT, NULL);
/* fall-through */
case 3193:
case 3195:
--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/37678?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I42cc264b1b77bf8d91ec01a18d8985e182a20024
Gerrit-Change-Number: 37678
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged