Attention is currently required from: dexter.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/34706?usp=email )
Change subject: pcuif_proto: drop support for PCUIF v10
......................................................................
Patch Set 1: Code-Review-1
(3 comments)
File include/osmocom/pcu/pcuif_proto.h:
https://gerrit.osmocom.org/c/osmo-pcu/+/34706/comment/c8997896_26149ac4
PS1, Line 16: #define PCU_IF_MSG_DATA_CNF 0x01 /* (deprecated) */
this does no longer exist in v11 afaiu
https://gerrit.osmocom.org/c/osmo-pcu/+/34706/comment/1f9dc75d_ffced86c
PS1, Line 38: #define PCU_IF_SAPI_AGCH 0x02 /* (deprecated) */
this does no longer exist in v11 afaiu
File src/bts.cpp:
https://gerrit.osmocom.org/c/osmo-pcu/+/34706/comment/a2b36e1f_4c1c6350
PS1, Line 1050: if (plen >= 0) {
{} can be removed.
--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/34706?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: I68a3f59d5c960ae3a4fbd74f9d4a894295cb9ed8
Gerrit-Change-Number: 34706
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 10 Oct 2023 14:34:43 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: dexter, fixeria.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/34707?usp=email )
Change subject: pcuif_proto: clean up last remains of old PCUIF v10
......................................................................
Patch Set 1: Code-Review-1
(1 comment)
File include/osmo-bts/pcuif_proto.h:
https://gerrit.osmocom.org/c/osmo-bts/+/34707/comment/04b2a897_c1b38322
PS1, Line 32: #define PCU_IF_SAPI_AGCH 0x02 /* (deprecated) */
They were deprecated with v11, but since v12 which you will introduce now they will be no-longer supported, hence they should actually be removed.
AFAIU the protocol version is checked at startup, so there shouldn't be problems with different versions using the same value for different topics.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/34707?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I04f7108c94c99c9920192177087748e8b89b3106
Gerrit-Change-Number: 34707
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 10 Oct 2023 14:32:24 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/34706?usp=email )
Change subject: pcuif_proto: drop support for PCUIF v10
......................................................................
pcuif_proto: drop support for PCUIF v10
We now use PCUIF v11 in the TTCN3 tests exclusively and also osmo-bts
and osmo-bsc only support PCUIF v11. There is no longer a need to
maintain a backward compatibility to PCUIF v10 in osmo-pcu.
Related: OS#5927
Change-Id: I68a3f59d5c960ae3a4fbd74f9d4a894295cb9ed8
---
M include/osmocom/pcu/pcuif_proto.h
M src/bts.cpp
M src/gprs_rlcmac.c
M src/pcu_l1_if.cpp
4 files changed, 33 insertions(+), 111 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/06/34706/1
diff --git a/include/osmocom/pcu/pcuif_proto.h b/include/osmocom/pcu/pcuif_proto.h
index 9df85d9..cfa422b 100644
--- a/include/osmocom/pcu/pcuif_proto.h
+++ b/include/osmocom/pcu/pcuif_proto.h
@@ -13,7 +13,7 @@
/* msg_type */
#define PCU_IF_MSG_DATA_REQ 0x00 /* send data to given channel */
-#define PCU_IF_MSG_DATA_CNF 0x01 /* confirm (e.g. transmission on PCH) */
+#define PCU_IF_MSG_DATA_CNF 0x01 /* (deprecated) */
#define PCU_IF_MSG_DATA_IND 0x02 /* receive data from given channel */
#define PCU_IF_MSG_SUSP_REQ 0x03 /* BTS forwards GPRS SUSP REQ to PCU */
#define PCU_IF_MSG_APP_INFO_REQ 0x04 /* BTS asks PCU to transmit APP INFO via PACCH */
@@ -35,8 +35,8 @@
/* sapi */
#define PCU_IF_SAPI_RACH 0x01 /* channel request on CCCH */
-#define PCU_IF_SAPI_AGCH 0x02 /* assignment on AGCH */
-#define PCU_IF_SAPI_PCH 0x03 /* paging/assignment on PCH */
+#define PCU_IF_SAPI_AGCH 0x02 /* (deprecated) */
+#define PCU_IF_SAPI_PCH 0x03 /* (deprecated) */
#define PCU_IF_SAPI_BCCH 0x04 /* SI on BCCH */
#define PCU_IF_SAPI_PDTCH 0x05 /* packet data/control/ccch block */
#define PCU_IF_SAPI_PRACH 0x06 /* packet random access channel */
@@ -297,7 +297,6 @@
union {
struct gsm_pcu_if_data data_req;
- struct gsm_pcu_if_data data_cnf;
struct gsm_pcu_if_data_cnf data_cnf2;
struct gsm_pcu_if_data data_ind;
struct gsm_pcu_if_susp_req susp_req;
diff --git a/src/bts.cpp b/src/bts.cpp
index 50c21a3..6dffa2d 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -1033,10 +1033,7 @@
rip->burst_type);
bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_UL_TBF);
if (plen >= 0) {
- if (the_pcu->pcu_if_version >= 0x0b)
- pcu_l1if_tx_agch2(bts, bv, plen, false, GSM_RESERVED_TMSI);
- else
- pcu_l1if_tx_agch(bts, bv, plen);
+ pcu_l1if_tx_agch2(bts, bv, plen, false, GSM_RESERVED_TMSI);
rc = 0;
} else {
rc = plen;
@@ -1051,10 +1048,7 @@
(uint8_t)osmo_tdef_get(bts->T_defs_bts, 3142, OSMO_TDEF_S, -1));
bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_REJ);
if (plen >= 0) {
- if (the_pcu->pcu_if_version >= 0x0b)
- pcu_l1if_tx_agch2(bts, bv, plen, false, GSM_RESERVED_TMSI);
- else
- pcu_l1if_tx_agch(bts, bv, plen);
+ pcu_l1if_tx_agch2(bts, bv, plen, false, GSM_RESERVED_TMSI);
}
bitvec_free(bv);
/* rc was already properly set before goto */
@@ -1136,24 +1130,20 @@
if (plen >= 0) {
bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_DL_TBF);
- if (the_pcu->pcu_if_version >= 0x0b) {
- if (ms_imsi_is_valid(tbf->ms())) {
- pcu_l1if_tx_pch2(bts, immediate_assignment, plen, true, tbf->imsi(), tbf->tlli());
- } else {
- /* During GMM ATTACH REQUEST, the IMSI is not yet known to the PCU or SGSN. (It is
- * requested after the GMM ATTACH REQUEST with the GMM IDENTITY REQUEST.) When the PCU
- * has to assign a DL TBF but the IMSI is not known, then the IMMEDIATE ASSIGNMENT is
- * sent on the AGCH. The reason for this is that without an IMSI we can not calculate
- + the paging group, which would be necessary for transmission on PCH. Since the IMSI
- * is usually only unknown during the GMM ATTACH REQUEST, we may assume that the MS
- * is in non-DRX mode and hence it is listening on all CCCH blocks, including AGCH.
- *
- * See also: 3gpp TS 44.060, section 5.5.1.5
- * 3gpp TS 45.002, section 6.5.3, 6.5.6 */
- pcu_l1if_tx_agch2(bts, immediate_assignment, plen, true, tbf->tlli());
- }
+ if (ms_imsi_is_valid(tbf->ms())) {
+ pcu_l1if_tx_pch2(bts, immediate_assignment, plen, true, tbf->imsi(), tbf->tlli());
} else {
- pcu_l1if_tx_pch(bts, immediate_assignment, plen, tbf->imsi());
+ /* During GMM ATTACH REQUEST, the IMSI is not yet known to the PCU or SGSN. (It is
+ * requested after the GMM ATTACH REQUEST with the GMM IDENTITY REQUEST.) When the PCU
+ * has to assign a DL TBF but the IMSI is not known, then the IMMEDIATE ASSIGNMENT is
+ * sent on the AGCH. The reason for this is that without an IMSI we can not calculate
+ * the paging group, which would be necessary for transmission on PCH. Since the IMSI
+ * is usually only unknown during the GMM ATTACH REQUEST, we may assume that the MS
+ * is in non-DRX mode and hence it is listening on all CCCH blocks, including AGCH.
+ *
+ * See also: 3gpp TS 44.060, section 5.5.1.5
+ * 3gpp TS 45.002, section 6.5.3, 6.5.6 */
+ pcu_l1if_tx_agch2(bts, immediate_assignment, plen, true, tbf->tlli());
}
}
diff --git a/src/gprs_rlcmac.c b/src/gprs_rlcmac.c
index d15445e..b2cbeca 100644
--- a/src/gprs_rlcmac.c
+++ b/src/gprs_rlcmac.c
@@ -44,11 +44,7 @@
}
bts_do_rate_ctr_inc(bts, CTR_PCH_REQUESTS);
- if (the_pcu->pcu_if_version >= 0x0b)
- pcu_l1if_tx_pch2(bts, paging_request, plen, false, imsi, GSM_RESERVED_TMSI);
- else
- pcu_l1if_tx_pch(bts, paging_request, plen, imsi);
-
+ pcu_l1if_tx_pch2(bts, paging_request, plen, false, imsi, GSM_RESERVED_TMSI);
bitvec_free(paging_request);
return 0;
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp
index 4fcec31..a615d2e 100644
--- a/src/pcu_l1_if.cpp
+++ b/src/pcu_l1_if.cpp
@@ -249,22 +249,6 @@
pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, data, data_len);
}
-void pcu_l1if_tx_agch(struct gprs_rlcmac_bts *bts, bitvec *block, int plen)
-{
- /* TODO: When PCUIF v.11 has become mainline, we will use pcu_l1if_tx_agch2() exclusively.
- * This will make this function obsolote, so we can remove it. */
- uint8_t data[GSM_MACBLOCK_LEN]; /* prefix PLEN */
-
- /* FIXME: why does OpenBTS has no PLEN and no fill in message? */
- bitvec_pack(block, data + 1);
- data[0] = (plen << 2) | 0x01;
-
- if (the_pcu->gsmtap_categ_mask & (1 << PCU_GSMTAP_C_DL_AGCH))
- gsmtap_send(the_pcu->gsmtap, 0, 0, GSMTAP_CHANNEL_AGCH, 0, 0, 0, 0, data, GSM_MACBLOCK_LEN);
-
- pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_AGCH, 0, 0, 0, data, sizeof(data));
-}
-
/* Send a MAC block via the access grant channel. This will (obviously) only work for MAC blocks that contain
* an IMMEDIATE ASSIGNMENT. In case the confirm flag is set, the receiving end is required to send a confirmation
* back when the IMMEDIATE ASSIGNMENT has been sent. */
@@ -283,43 +267,6 @@
pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_AGCH_2, 0, 0, 0, (uint8_t*)&agch, sizeof(agch));
}
-#define IMSI_DIGITS_FOR_PAGING 3
-/* Send a MAC block via the paging channel. (See also comment below) */
-void pcu_l1if_tx_pch(struct gprs_rlcmac_bts *bts, bitvec *block, int plen, const char *imsi)
-{
- /* TODO: When PCUIF v.11 has become mainline, we will use pcu_l1if_tx_pch2() exclusively.
- * This will make this function obsolote, so we can remove it. */
-
- uint8_t data[IMSI_DIGITS_FOR_PAGING + GSM_MACBLOCK_LEN];
-
- /* prepend last three IMSI digits (if present) from which BTS/BSC will calculate the paging group */
- if (imsi && strlen(imsi) >= IMSI_DIGITS_FOR_PAGING)
- memcpy(data, imsi + strlen(imsi) - IMSI_DIGITS_FOR_PAGING, IMSI_DIGITS_FOR_PAGING);
- else
- memset(data, '0', IMSI_DIGITS_FOR_PAGING);
-
- /* OS#6097: if strlen(imsi) == 0: We assume the MS is in non-DRX
- * mode (TS 44.060 5.5.1.5) and hence it is listening on all CCCH blocks
- * (TS 45.002 6.5.3, 6.5.6).
- * Hence, pgroup 000 is taken "randomly" to send it over it. This of
- * course not optimal since it can actually be sent on any CCCH blocks,
- * so we are delaying the ImmAss for no good reason. But anyway,
- * pcu_l1if_tx_pch() is deprecated and pcu_l1if_tx_pch2() should be
- * used instead, which doesn't suffer from this problem.
- */
-
- /* block provided by upper layer comes without first byte (plen), prepend it manually: */
- OSMO_ASSERT(sizeof(data) >= IMSI_DIGITS_FOR_PAGING + 1 + block->data_len);
- data[IMSI_DIGITS_FOR_PAGING] = (plen << 2) | 0x01;
- bitvec_pack(block, data + IMSI_DIGITS_FOR_PAGING + 1);
-
- if (the_pcu->gsmtap_categ_mask & (1 << PCU_GSMTAP_C_DL_PCH))
- gsmtap_send(the_pcu->gsmtap, 0, 0, GSMTAP_CHANNEL_PCH, 0, 0, 0, 0,
- data + IMSI_DIGITS_FOR_PAGING, GSM_MACBLOCK_LEN);
-
- pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, sizeof(data));
-}
-
/* Send a MAC block via the paging channel. This will (obviously) only work for MAC blocks that contain an
* IMMEDIATE ASSIGNMENT or a PAGING COMMAND message. In case the MAC block contains an IMMEDIATE ASSIGNMENT
* message, the receiving end is required to confirm when the IMMEDIATE ASSIGNMENT has been sent. */
@@ -556,26 +503,6 @@
return rc;
}
-static int pcu_rx_data_cnf(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_data *data_cnf)
-{
- int rc = 0;
-
- LOGP(DL1IF, LOGL_DEBUG, "Data confirm received: sapi=%d\n", data_cnf->sapi);
-
- switch (data_cnf->sapi) {
- case PCU_IF_SAPI_PCH:
- if (data_cnf->data[2] == GSM48_MT_RR_IMM_ASS)
- bts_rcv_imm_ass_cnf(bts, data_cnf->data, GSM_RESERVED_TMSI);
- break;
- default:
- LOGP(DL1IF, LOGL_ERROR, "Received PCU data confirm with "
- "unsupported sapi %d\n", data_cnf->sapi);
- rc = -EINVAL;
- }
-
- return rc;
-}
-
static int pcu_rx_data_cnf2(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_data_cnf *data_cnf)
{
int rc = 0;
@@ -1294,10 +1221,6 @@
CHECK_IF_MSG_SIZE(pcu_prim_length, pcu_prim->u.data_ind);
rc = pcu_rx_data_ind(bts, &pcu_prim->u.data_ind);
break;
- case PCU_IF_MSG_DATA_CNF:
- CHECK_IF_MSG_SIZE(pcu_prim_length, pcu_prim->u.data_cnf);
- rc = pcu_rx_data_cnf(bts, &pcu_prim->u.data_cnf);
- break;
case PCU_IF_MSG_DATA_CNF_2:
CHECK_IF_MSG_SIZE(pcu_prim_length, pcu_prim->u.data_cnf2);
rc = pcu_rx_data_cnf2(bts, &pcu_prim->u.data_cnf2);
--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/34706?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: I68a3f59d5c960ae3a4fbd74f9d4a894295cb9ed8
Gerrit-Change-Number: 34706
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newchange
jolly has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34704?usp=email )
Change subject: Correctly detect the follow-on proceed information element
......................................................................
Correctly detect the follow-on proceed information element
Even if follow-on proceed is not supported, the warning message about
not beeing supported should only show when the follow-on proceed
information element is included in the location update accept messages.
Change-Id: I2b1aceb8b85bdd9faabe354501f9036f1fc6fe33
---
M src/host/layer23/src/mobile/gsm48_mm.c
1 file changed, 14 insertions(+), 1 deletion(-)
Approvals:
fixeria: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/host/layer23/src/mobile/gsm48_mm.c b/src/host/layer23/src/mobile/gsm48_mm.c
index 810dfa7..bcd2c64 100644
--- a/src/host/layer23/src/mobile/gsm48_mm.c
+++ b/src/host/layer23/src/mobile/gsm48_mm.c
@@ -2710,7 +2710,7 @@
gsm322_plmn_sendmsg(ms, nmsg);
/* follow on proceed */
- if (TLVP_PRESENT(&tp, GSM48_IE_MOBILE_ID))
+ if (TLVP_PRESENT(&tp, GSM48_IE_FOLLOW_ON_PROC))
LOGP(DMM, LOGL_NOTICE, "follow-on proceed not supported.\n");
/* start RR release timer */
--
To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34704?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I2b1aceb8b85bdd9faabe354501f9036f1fc6fe33
Gerrit-Change-Number: 34704
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged