Attention is currently required from: pespin.
Hello osmith, Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-cbc/+/32730
to look at the new patch set (#2).
Change subject: README.md: Document generation of SBcAP code from ASN.1 files
......................................................................
README.md: Document generation of SBcAP code from ASN.1 files
Change-Id: Id6edb2dcbd39ca101110f1ca57fcd67bf08c0ef0
---
M README.md
1 file changed, 36 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/30/32730/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/32730
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-cbc
Gerrit-Branch: master
Gerrit-Change-Id: Id6edb2dcbd39ca101110f1ca57fcd67bf08c0ef0
Gerrit-Change-Number: 32730
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: neels, pespin, dexter.
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/32218 )
Change subject: mgcp_codec: fix codec decision
......................................................................
Patch Set 11:
(1 comment)
Patchset:
PS11:
Somehow `tests/mgcp/mgcp_test.ok` is seen by Gerrit as a binary file?
Do you know why? This makes it harder to review the test output changes.
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/32218
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c3291f825488e5d8ce136aeb18450156794aeb5
Gerrit-Change-Number: 32218
Gerrit-PatchSet: 11
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 16 May 2023 10:25:59 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/32731 )
Change subject: build/Makefile.docbook: fix INC_DIR for openbsc
......................................................................
build/Makefile.docbook: fix INC_DIR for openbsc
When Makefile.docbook.inc gets included by openbsc, the PWD Makefile
variable is empty (probably because the including file is not generated
by automake). Use the shell pwd command instead.
This fixes the master-openbsc jenkins job which has been failing since
previous patch dba860c7 ("VTY references: set git version and date")
was merged.
Related: OS#4063
Change-Id: I6026623ec9a5eef0ca8c47bf46605086e361c2bc
---
M build/Makefile.docbook.inc
1 file changed, 19 insertions(+), 1 deletion(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, approved
diff --git a/build/Makefile.docbook.inc b/build/Makefile.docbook.inc
index eff6c66..df17646 100644
--- a/build/Makefile.docbook.inc
+++ b/build/Makefile.docbook.inc
@@ -28,7 +28,7 @@
all: $(DOCBOOKS_PDF)
# Allow the users to re-define the include directory
-INC_DIR ?= $(PWD)/generated
+INC_DIR ?= $(shell pwd)/generated
# Lint the file
%.xml-lint: %.xml
--
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/32731
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-gsm-manuals
Gerrit-Branch: master
Gerrit-Change-Id: I6026623ec9a5eef0ca8c47bf46605086e361c2bc
Gerrit-Change-Number: 32731
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged
dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32687 )
Change subject: paging: cosmetic: rename all IMM.ASS references to MAC block
......................................................................
paging: cosmetic: rename all IMM.ASS references to MAC block
The paging interface towards the PCU has a confusing API. In fact what
the PCU does when it wants to page or do an immediate assignment is
sending a ready formatted MAC block to the BTS. The BTS then puts this
MAC block in the paging queue and then eventually it justs sends it
without looking at the contents. For the code in paging.c it is not
imortant if the MAC block is an immediate assignment, it only cares if
the paging record contains a MAC block or paging parameters.
Related: OS#5927
Change-Id: Ifab37fdedaba98b160718113767e4ef6ee7d16ad
---
M include/osmo-bts/paging.h
M src/common/paging.c
M src/common/pcu_sock.c
3 files changed, 78 insertions(+), 58 deletions(-)
Approvals:
fixeria: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/include/osmo-bts/paging.h b/include/osmo-bts/paging.h
index fb50323..f1ae8e3 100644
--- a/include/osmo-bts/paging.h
+++ b/include/osmo-bts/paging.h
@@ -35,9 +35,10 @@
int paging_add_identity(struct paging_state *ps, uint8_t paging_group,
const uint8_t *identity_lv, uint8_t chan_needed);
-/* Add an IMM.ASS message to the paging queue */
-int paging_add_imm_ass(struct paging_state *ps,
- const uint8_t *data, uint8_t len);
+/* Add a ready formatted MAC block message to the paging queue, this can be an IMMEDIATE ASSIGNMENT, or a
+ * PAGING COMMAND (from the PCU) */
+int paging_add_macblock(struct paging_state *ps,
+ const uint8_t *data, uint8_t len);
/* generate paging message for given gsm time */
int paging_gen_msg(struct paging_state *ps, uint8_t *out_buf, struct gsm_time *gt,
diff --git a/src/common/paging.c b/src/common/paging.c
index 26ba9b0..284b71c 100644
--- a/src/common/paging.c
+++ b/src/common/paging.c
@@ -48,8 +48,8 @@
#define MAX_BS_PA_MFRMS 9
enum paging_record_type {
- PAGING_RECORD_PAGING,
- PAGING_RECORD_IMM_ASS
+ PAGING_RECORD_NORMAL,
+ PAGING_RECORD_MACBLOCK
};
struct paging_record {
@@ -60,10 +60,10 @@
time_t expiration_time;
uint8_t chan_needed;
uint8_t identity_lv[9];
- } paging;
+ } normal;
struct {
uint8_t msg[GSM_MACBLOCK_LEN];
- } imm_ass;
+ } macblock;
} u;
};
@@ -88,9 +88,9 @@
/* The prioritization of cs pagings is controlled by a hysteresis. When the
* fill state of the paging queue exceeds the upper fill level
- * THRESHOLD_CONGESTED [%], then PS pagings (immediate assignments) will be
- * dropped until fill state of the paging queue drops under the lower fill
- * level THRESHOLD_CLEAR [%]. */
+ * THRESHOLD_CONGESTED [%], then PS pagings (immediate assignments and pagings
+ * from the PCU) will be dropped until fill state of the paging queue drops
+ * under the lower fill level THRESHOLD_CLEAR [%]. */
#define THRESHOLD_CONGESTED 66 /* (percent of num_paging_max) */
#define THRESHOLD_CLEAR 50 /* (percent of num_paging_max) */
@@ -230,13 +230,13 @@
/* Check if we already have this identity */
llist_for_each_entry(pr, group_q, list) {
- if (pr->type != PAGING_RECORD_PAGING)
+ if (pr->type != PAGING_RECORD_NORMAL)
continue;
- if (identity_lv[0] == pr->u.paging.identity_lv[0] &&
- !memcmp(identity_lv+1, pr->u.paging.identity_lv+1,
+ if (identity_lv[0] == pr->u.normal.identity_lv[0] &&
+ !memcmp(identity_lv+1, pr->u.normal.identity_lv+1,
identity_lv[0])) {
LOGP(DPAG, LOGL_INFO, "Ignoring duplicate paging\n");
- pr->u.paging.expiration_time =
+ pr->u.normal.expiration_time =
time(NULL) + ps->paging_lifetime;
return -EEXIST;
}
@@ -245,9 +245,9 @@
pr = talloc_zero(ps, struct paging_record);
if (!pr)
return -ENOMEM;
- pr->type = PAGING_RECORD_PAGING;
+ pr->type = PAGING_RECORD_NORMAL;
- if (*identity_lv + 1 > sizeof(pr->u.paging.identity_lv)) {
+ if (*identity_lv + 1 > sizeof(pr->u.normal.identity_lv)) {
talloc_free(pr);
return -E2BIG;
}
@@ -255,9 +255,9 @@
LOGP(DPAG, LOGL_INFO, "Add paging to queue (group=%u, queue_len=%u)\n",
paging_group, ps->num_paging+1);
- pr->u.paging.expiration_time = time(NULL) + ps->paging_lifetime;
- pr->u.paging.chan_needed = chan_needed;
- memcpy(&pr->u.paging.identity_lv, identity_lv, identity_lv[0]+1);
+ pr->u.normal.expiration_time = time(NULL) + ps->paging_lifetime;
+ pr->u.normal.chan_needed = chan_needed;
+ memcpy(&pr->u.normal.identity_lv, identity_lv, identity_lv[0]+1);
/* enqueue the new identity to the HEAD of the queue,
* to ensure it will be paged quickly at least once. */
@@ -267,9 +267,10 @@
return 0;
}
-/* Add an IMM.ASS message to the paging queue */
-int paging_add_imm_ass(struct paging_state *ps,
- const uint8_t *data, uint8_t len)
+/* Add a ready formatted MAC block message to the paging queue, this can be an IMMEDIATE ASSIGNMENT, or a
+ * PAGING COMMAND (from the PCU) */
+int paging_add_macblock(struct paging_state *ps,
+ const uint8_t *data, uint8_t len)
{
struct llist_head *group_q;
struct paging_record *pr;
@@ -285,7 +286,7 @@
}
if (len != GSM_MACBLOCK_LEN + 3) {
- LOGP(DPAG, LOGL_ERROR, "IMM.ASS invalid length %d\n", len);
+ LOGP(DPAG, LOGL_ERROR, "MAC block with invalid length %d (GSM_MACBLOCK_LEN + 3)\n", len);
return -EINVAL;
}
len -= 3;
@@ -300,11 +301,11 @@
pr = talloc_zero(ps, struct paging_record);
if (!pr)
return -ENOMEM;
- pr->type = PAGING_RECORD_IMM_ASS;
+ pr->type = PAGING_RECORD_MACBLOCK;
- LOGP(DPAG, LOGL_INFO, "Add IMM.ASS to queue (group=%u)\n",
+ LOGP(DPAG, LOGL_INFO, "Add MAC block to paging queue (group=%u)\n",
paging_group);
- memcpy(pr->u.imm_ass.msg, data, GSM_MACBLOCK_LEN);
+ memcpy(pr->u.macblock.msg, data, GSM_MACBLOCK_LEN);
/* enqueue the new message to the HEAD of the queue */
llist_add(&pr->list, group_q);
@@ -509,7 +510,7 @@
static int pr_is_imsi(struct paging_record *pr)
{
- if ((pr->u.paging.identity_lv[1] & 7) == GSM_MI_TYPE_IMSI)
+ if ((pr->u.normal.identity_lv[1] & 7) == GSM_MI_TYPE_IMSI)
return 1;
else
return 0;
@@ -599,7 +600,7 @@
*is_empty = 1;
} else {
struct paging_record *pr[4];
- unsigned int num_pr = 0, imm_ass = 0;
+ unsigned int num_pr = 0, macblock = 0;
time_t now = time(NULL);
unsigned int i, num_imsi = 0;
@@ -611,9 +612,9 @@
break;
pr[i] = dequeue_pr(group_q);
- /* check for IMM.ASS */
- if (pr[i]->type == PAGING_RECORD_IMM_ASS) {
- imm_ass = 1;
+ /* check for MAC block */
+ if (pr[i]->type == PAGING_RECORD_MACBLOCK) {
+ macblock = 1;
break;
}
@@ -624,16 +625,16 @@
num_imsi++;
}
- /* if we have an IMMEDIATE ASSIGNMENT */
- if (imm_ass) {
- /* re-add paging records */
+ /* if we have a MAC block (from the PCU), we send a conformation back */
+ if (macblock) {
+ /* re-add normal paging records */
for (i = 0; i < num_pr; i++)
llist_add(&pr[i]->list, group_q);
- /* get message and free record */
- memcpy(out_buf, pr[num_pr]->u.imm_ass.msg,
+ /* get MAC block message and free record */
+ memcpy(out_buf, pr[num_pr]->u.macblock.msg,
GSM_MACBLOCK_LEN);
- pcu_tx_pch_data_cnf(gt->fn, pr[num_pr]->u.imm_ass.msg,
+ pcu_tx_pch_data_cnf(gt->fn, pr[num_pr]->u.macblock.msg,
GSM_MACBLOCK_LEN);
talloc_free(pr[num_pr]);
return GSM_MACBLOCK_LEN;
@@ -646,23 +647,23 @@
/* No IMSI: easy case, can use TYPE 3 */
DEBUGP(DPAG, "Tx PAGING TYPE 3 (4 TMSI)\n");
len = fill_paging_type_3(out_buf,
- pr[0]->u.paging.identity_lv,
- pr[0]->u.paging.chan_needed,
- pr[1]->u.paging.identity_lv,
- pr[1]->u.paging.chan_needed,
- pr[2]->u.paging.identity_lv,
- pr[2]->u.paging.chan_needed,
- pr[3]->u.paging.identity_lv,
- pr[3]->u.paging.chan_needed);
+ pr[0]->u.normal.identity_lv,
+ pr[0]->u.normal.chan_needed,
+ pr[1]->u.normal.identity_lv,
+ pr[1]->u.normal.chan_needed,
+ pr[2]->u.normal.identity_lv,
+ pr[2]->u.normal.chan_needed,
+ pr[3]->u.normal.identity_lv,
+ pr[3]->u.normal.chan_needed);
} else if (num_pr >= 3 && num_imsi <= 1) {
/* 3 or 4, of which only up to 1 is IMSI */
DEBUGP(DPAG, "Tx PAGING TYPE 2 (2 TMSI,1 xMSI)\n");
len = fill_paging_type_2(out_buf,
- pr[0]->u.paging.identity_lv,
- pr[0]->u.paging.chan_needed,
- pr[1]->u.paging.identity_lv,
- pr[1]->u.paging.chan_needed,
- pr[2]->u.paging.identity_lv);
+ pr[0]->u.normal.identity_lv,
+ pr[0]->u.normal.chan_needed,
+ pr[1]->u.normal.identity_lv,
+ pr[1]->u.normal.chan_needed,
+ pr[2]->u.normal.identity_lv);
if (num_pr == 4) {
/* re-add #4 for next time */
llist_add(&pr[3]->list, group_q);
@@ -671,18 +672,18 @@
} else if (num_pr == 1) {
DEBUGP(DPAG, "Tx PAGING TYPE 1 (1 xMSI,1 empty)\n");
len = fill_paging_type_1(out_buf,
- pr[0]->u.paging.identity_lv,
- pr[0]->u.paging.chan_needed,
+ pr[0]->u.normal.identity_lv,
+ pr[0]->u.normal.chan_needed,
NULL, 0, NULL);
} else {
/* 2 (any type) or
* 3 or 4, of which only 2 will be sent */
DEBUGP(DPAG, "Tx PAGING TYPE 1 (2 xMSI)\n");
len = fill_paging_type_1(out_buf,
- pr[0]->u.paging.identity_lv,
- pr[0]->u.paging.chan_needed,
- pr[1]->u.paging.identity_lv,
- pr[1]->u.paging.chan_needed, NULL);
+ pr[0]->u.normal.identity_lv,
+ pr[0]->u.normal.chan_needed,
+ pr[1]->u.normal.identity_lv,
+ pr[1]->u.normal.chan_needed, NULL);
if (num_pr >= 3) {
/* re-add #4 for next time */
llist_add(&pr[2]->list, group_q);
@@ -702,7 +703,7 @@
rate_ctr_inc2(bts->ctrs, BTS_CTR_PAGING_SENT);
/* check if we can expire the paging record,
* or if we need to re-queue it */
- if (pr[i]->u.paging.expiration_time <= now) {
+ if (pr[i]->u.normal.expiration_time <= now) {
talloc_free(pr[i]);
ps->num_paging--;
LOGP(DPAG, LOGL_INFO, "Removed paging record, queue_len=%u\n",
diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c
index 2fb0524..00debad 100644
--- a/src/common/pcu_sock.c
+++ b/src/common/pcu_sock.c
@@ -675,7 +675,7 @@
switch (data_req->sapi) {
case PCU_IF_SAPI_PCH:
- paging_add_imm_ass(bts->paging_state, data_req->data, data_req->len);
+ paging_add_macblock(bts->paging_state, data_req->data, data_req->len);
break;
case PCU_IF_SAPI_AGCH:
msg = msgb_alloc(data_req->len, "pcu_agch");
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32687
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Ifab37fdedaba98b160718113767e4ef6ee7d16ad
Gerrit-Change-Number: 32687
Gerrit-PatchSet: 5
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: msuraev <msuraev(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged