falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/42717?usp=email )
Change subject: rsl: don't send legacy Chan Ident IE for Nokia BTS
......................................................................
rsl: don't send legacy Chan Ident IE for Nokia BTS
The description of CHAN ACTIV command message in TS 48.058
section 8.4.1 lists Channel Identification as an optional IE,
with a note that reads "Included if compatibility with phase1
is required." This note may have been misinterpreted as
referring to compatibility with Phase 1 phones - but since
this network-internal Abis detail is invisible to phones,
the real intent of GSM spec authors here must have been
compatibility with Phase 1 BTS.
Previous versions of OsmoBSC would always include this IE,
and it appears that all previously supported BTS models
would simply ignore it. However, newer Nokia BTS models
(observed on Flexi Multiradio at least) dislike this IE
and return CHAN ACTIV NACK with an optional IE error cause
if it is included.
To avoid changing OsmoBSC behavior for other users, let us
conditionalize removal of this legacy IE on Nokia BTS for now.
This change has been tested on InSite, MetroSite and Flexi
Multiradio - no adverse effects on previously supported
*Site models.
Change-Id: Ibce7a841907ac87ae378ded3ddb174d38b70b7b7
---
M src/osmo-bsc/abis_rsl.c
1 file changed, 46 insertions(+), 19 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/17/42717/1
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 42a164a..4627914 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -577,6 +577,31 @@
msgb_put_u8(msg, tsc);
}
+static void add_phase1_chan_ident(struct msgb *msg, const struct gsm48_chan_desc *cd)
+{
+ uint8_t *len;
+
+ /*
+ * This Channel Identification IE is a Phase1 backward compatibility
+ * measure. It contains the GSM48 Channel Description and the
+ * Mobile Allocation. TS 48.058 section 9.3.5 asks for MA
+ * to have a length of zero. We are using msgb_l3len() to calculate
+ * the length of both messages.
+ */
+ msgb_v_put(msg, RSL_IE_CHAN_IDENT);
+ len = msgb_put(msg, 1);
+ msgb_tv_fixed_put(msg, GSM48_IE_CHANDESC_2, sizeof(*cd), (const uint8_t *) cd);
+
+ /* See 3GPP TS 48.058 (version 15.0.0), section 9.3.5 "Channel Identification".
+ * The 3GPP TS 24.008 "Mobile Allocation" shall for compatibility reasons
+ * be included but empty, i.e. the length shall be zero. */
+ msgb_tlv_put(msg, GSM48_IE_MA_AFTER, 0, NULL);
+
+ /* update the calculated size */
+ msg->l3h = len + 1;
+ *len = msgb_l3len(msg);
+}
+
/* Chapter 8.4.1 */
int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref)
{
@@ -585,7 +610,6 @@
struct abis_rsl_dchan_hdr *dh;
struct msgb *msg;
int rc;
- uint8_t *len;
struct rsl_ie_chan_mode cm;
struct gsm48_chan_desc cd;
@@ -625,25 +649,28 @@
msgb_tlv_put(msg, RSL_IE_CHAN_MODE, sizeof(cm),
(uint8_t *) &cm);
- /*
- * The Channel Identification is needed for Phase1 phones
- * and it contains the GSM48 Channel Description and the
- * Mobile Allocation. The GSM 08.58 asks for the Mobile
- * Allocation to have a length of zero. We are using the
- * msgb_l3len to calculate the length of both messages.
+ /* The description of CHAN ACTIV command message in TS 48.058
+ * section 8.4.1 lists Channel Identification as an optional IE,
+ * with a note that reads "Included if compatibility with phase1
+ * is required." This note may have been misinterpreted as
+ * referring to compatibility with Phase 1 phones - but since
+ * this network-internal Abis detail is invisible to phones,
+ * the real intent of GSM spec authors here must have been
+ * compatibility with Phase 1 BTS.
+ *
+ * Previous versions of OsmoBSC would always include this IE,
+ * and it appears that all previously supported BTS models
+ * would simply ignore it. However, newer Nokia BTS models
+ * (observed on Flexi Multiradio at least) dislike this IE
+ * and return CHAN ACTIV NACK with an optional IE error cause
+ * if it is included.
+ *
+ * To avoid changing OsmoBSC behavior for other users,
+ * let us conditionalize removal of this legacy IE on
+ * Nokia BTS for now.
*/
- msgb_v_put(msg, RSL_IE_CHAN_IDENT);
- len = msgb_put(msg, 1);
- msgb_tv_fixed_put(msg, GSM48_IE_CHANDESC_2, sizeof(cd), (const uint8_t *) &cd);
-
- /* See 3GPP TS 48.058 (version 15.0.0), section 9.3.5 "Channel Identification".
- * The 3GPP TS 24.008 "Mobile Allocation" shall for compatibility reasons
- * be included but empty, i.e. the length shall be zero. */
- msgb_tlv_put(msg, GSM48_IE_MA_AFTER, 0, NULL);
-
- /* update the calculated size */
- msg->l3h = len + 1;
- *len = msgb_l3len(msg);
+ if (!is_nokia_bts(bts))
+ add_phase1_chan_ident(msg, &cd);
if (lchan->encr.alg_a5_n > 0) {
uint8_t encr_info[MAX_A5_KEY_LEN+2];
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/42717?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ibce7a841907ac87ae378ded3ddb174d38b70b7b7
Gerrit-Change-Number: 42717
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/42716?usp=email )
Change subject: nokia: respond to BTS_COMMISS_TEST_REQ
......................................................................
nokia: respond to BTS_COMMISS_TEST_REQ
In some cases, Flexi Multiradio BTS sends us BTS_COMMISS_TEST_REQ
during its init process, and expects us to respond with
BTS_COMMISS_TEST_COMPL, indicating that we did the requested
commissioning tests. While we don't do any actual tests currently,
and we have not yet reached an understanding of the exact conditions
as to when the BTS makes this query of us, if it does send us
BTS_COMMISS_TEST_REQ, we need to respond with BTS_COMMISS_TEST_COMPL
to make it happy.
Change-Id: I0f2710c3cdb38a9e5b37e40ca5584237a730a902
---
M src/osmo-bsc/bts_nokia_site.c
1 file changed, 10 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/16/42716/1
diff --git a/src/osmo-bsc/bts_nokia_site.c b/src/osmo-bsc/bts_nokia_site.c
index 441f101..3054f44 100644
--- a/src/osmo-bsc/bts_nokia_site.c
+++ b/src/osmo-bsc/bts_nokia_site.c
@@ -681,6 +681,8 @@
#define NOKIA_MSG_STATE_CHANGED 172
#define NOKIA_MSG_ALARM 174
#define NOKIA_MSG_CHA_ADM_STATE 175
+#define NOKIA_MSG_COMMISS_TEST_COMPL 178
+#define NOKIA_MSG_COMMISS_TEST_REQ 179
/* some element IDs */
@@ -2008,6 +2010,14 @@
/* send ACK */
abis_nm_ack(bts, ref);
break;
+ case NOKIA_MSG_COMMISS_TEST_REQ:
+ /* The BTS is asking us to do a commissioning test.
+ * We don't do any actual tests currently, but we need
+ * to tell the BTS that we did what it asked, so it
+ * can proceed further in its init sequence.
+ */
+ abis_nm_send(bts, NOKIA_MSG_COMMISS_TEST_COMPL, ref, NULL, 0);
+ break;
}
nokia_abis_nm_queue_send_next(bts);
return ret;
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/42716?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I0f2710c3cdb38a9e5b37e40ca5584237a730a902
Gerrit-Change-Number: 42716
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/42715?usp=email )
Change subject: nokia bts-reset-timer: raise the maximum to 300 s
......................................................................
nokia bts-reset-timer: raise the maximum to 300 s
The previous vty tuning range for this timer (allowing up to 100 s)
is not sufficient for Flexi Multiradio BTS, where we need 120 s
minimum or 130 s for some margin. Raise the upper limit for vty
config of this parameter to 5 min, which should be long enough
to not require further revisiting.
Change-Id: Ie5b784c9cce56e27800084471a7fb0b867cc0c69
---
M src/osmo-bsc/bts_vty.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/15/42715/1
diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c
index a412cdf..5d0ce7b 100644
--- a/src/osmo-bsc/bts_vty.c
+++ b/src/osmo-bsc/bts_vty.c
@@ -431,7 +431,7 @@
DEFUN_ATTR(cfg_bts_nokia_site_bts_reset_timer_cnf,
cfg_bts_nokia_site_bts_reset_timer_cnf_cmd,
- "nokia_site bts-reset-timer <15-100>",
+ "nokia_site bts-reset-timer <15-300>",
NOKIA_STR
"The amount of time between BTS_RESET is sent "
"and the BTS is being bootstrapped\n"
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/42715?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ie5b784c9cce56e27800084471a7fb0b867cc0c69
Gerrit-Change-Number: 42715
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/42713?usp=email )
Change subject: nokia vty: change help strings away from "*Site"
......................................................................
nokia vty: change help strings away from "*Site"
Support for Nokia BTS in OsmoBSC is being expanded from just *Site
family to also include Flexi Multiradio - therefore, help strings
and error messages in vty should be changed accordingly.
Change-Id: I55556b7b5aa5bc6efcbee815e9011497a933697c
---
M src/osmo-bsc/bts_vty.c
1 file changed, 5 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/42713/1
diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c
index d69fb1f..54a9fab 100644
--- a/src/osmo-bsc/bts_vty.c
+++ b/src/osmo-bsc/bts_vty.c
@@ -387,7 +387,7 @@
"Set the IPA RSL IP Address of the BSC\n"
"Destination IP address for RSL connection\n");
-#define NOKIA_STR "Nokia *Site related commands\n"
+#define NOKIA_STR "Nokia BTS related commands\n"
DEFUN_USRATTR(cfg_bts_nokia_site_skip_reset,
cfg_bts_nokia_site_skip_reset_cmd,
@@ -400,7 +400,7 @@
struct gsm_bts *bts = vty->index;
if (bts->type != GSM_BTS_TYPE_NOKIA_SITE) {
- vty_out(vty, "%% BTS is not of Nokia *Site type%s", VTY_NEWLINE);
+ vty_out(vty, "%% BTS is not of Nokia type%s", VTY_NEWLINE);
return CMD_WARNING;
}
@@ -420,8 +420,7 @@
struct gsm_bts *bts = vty->index;
if (!is_nokia_bts(bts)) {
- vty_out(vty, "%% BTS is not of Nokia *Site type%s",
- VTY_NEWLINE);
+ vty_out(vty, "%% BTS is not of Nokia type%s", VTY_NEWLINE);
return CMD_WARNING;
}
@@ -442,8 +441,7 @@
struct gsm_bts *bts = vty->index;
if (!is_nokia_bts(bts)) {
- vty_out(vty, "%% BTS is not of Nokia *Site type%s",
- VTY_NEWLINE);
+ vty_out(vty, "%% BTS is not of Nokia type%s", VTY_NEWLINE);
return CMD_WARNING;
}
@@ -464,7 +462,7 @@
struct gsm_bts *bts = vty->index;
if (!is_nokia_bts(bts)) {
- vty_out(vty, "%% BTS is not of Nokia *Site type%s", VTY_NEWLINE);
+ vty_out(vty, "%% BTS is not of Nokia type%s", VTY_NEWLINE);
return CMD_WARNING;
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/42713?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I55556b7b5aa5bc6efcbee815e9011497a933697c
Gerrit-Change-Number: 42713
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/42712?usp=email )
Change subject: nokia: add support for Flexi Multiradio
......................................................................
nokia: add support for Flexi Multiradio
Previous support existed for Nokia MetroSite, UltraSite and InSite
models, resulting in BTS model name "nokia_site". However, there
exist newer Nokia BTS models that also support E1 Abis and can be
supported by OsmoBSC with relatively small changes: Flexi EDGE,
Flexi Multiradio and Flexi Multiradio 10. Out of these newer
models, American 2G Cooperative (the present patch author's current
organization) has only Flexi MR at the present time - hence this
model shall be the first "new" Nokia BTS to be supported.
The first change required in order to support Flexi MR is ability
to receive long OML messages that have been segmented by the BTS:
the new BTS sends a much longer BTS_CONF_REQ message, and we have
to handle it correctly.
Change-Id: Icd429552c3b5e90d6c5d3ae5f52afd6550e3cebc
---
M include/osmocom/bsc/bts.h
M src/osmo-bsc/bts_nokia_site.c
2 files changed, 135 insertions(+), 28 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/42712/1
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index a10d3c4..e19e7e5 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -333,6 +333,22 @@
gsm_bts_nr_t bts_nr; /* See (struct gsm_bts *)->nr */
};
+/* Both the standard GSM 12.21 flavor of OML and Nokia's proprietary flavor
+ * use segmentation, meaning that messages longer than 256 bytes (maximum
+ * that can fit into one LAPD frame with standard N201=260, with GSM 12.21
+ * FOM header taking up 4 bytes) have to be split and transferred one segment
+ * at a time. While this mechanism appears to be not needed for any currently
+ * supported BTS that uses standard GSM 12.21 NM, we have to implement it
+ * for Nokia BTS in both Rx and Tx directions: we have to send at least one
+ * long OML message for all supported Nokia models, whereas Rx of long messages
+ * becomes a requirement with newer Flexi Multiradio BTS.
+ *
+ * In order to implement Rx of segmented OML messages, we need a reassembly
+ * buffer, and in order to size this buffer, we need an upper limit on the
+ * number of segments. The following definition tunes this limit.
+ */
+#define NOKIA_OML_MAX_RX_SEGMENTS 5
+
/* One BTS */
struct gsm_bts {
/* list header in net->bts_list */
@@ -491,6 +507,13 @@
wait_reset:2, /* we are waiting for reset to complete */
hopping_mode:1; /* hopping type selection for Nokia */
struct osmo_timer_list reset_timer;
+ /* segmented OML Rx buffer */
+ struct {
+ uint8_t buffer[256 * NOKIA_OML_MAX_RX_SEGMENTS];
+ bool active;
+ uint8_t seg_count;
+ uint16_t byte_count;
+ } oml_seg_rx;
} nokia;
};
diff --git a/src/osmo-bsc/bts_nokia_site.c b/src/osmo-bsc/bts_nokia_site.c
index c5e31b7..efccc87 100644
--- a/src/osmo-bsc/bts_nokia_site.c
+++ b/src/osmo-bsc/bts_nokia_site.c
@@ -1,4 +1,5 @@
-/* Nokia XXXsite family specific code */
+/* Nokia BTS vendor-specific code, currently supporting Site family
+ * and Flexi Multiradio. */
/* (C) 2011 by Dieter Spaar <spaar(a)mirider.augusta.de>
*
@@ -1774,17 +1775,18 @@
- receive ACK, start RSL link(s)
ACK some other messages received from the BTS.
- Probably its also possible to configure the BTS without a reset, this
- has not been tested yet.
+ It is also possible to configure the BTS without a reset, but in this case
+ the BTS does not accept any changes in configuration - therefore, the mode
+ of skipping BSC-driven BTS reset is only for use during osmo-bsc development,
+ when the developer-operator resets the BTS manually before each test run.
*/
#define FIND_ELEM(data, data_len, ei, var, len) (find_element(data, data_len, ei, var, len) == len)
-static int abis_nm_rcvmsg_fom(struct msgb *mb)
+static int abis_nm_rcvmsg_fom(struct e1inp_sign_link *sign_link,
+ uint8_t *l3_msg, unsigned l3_msg_len)
{
- struct e1inp_sign_link *sign_link = (struct e1inp_sign_link *)mb->dst;
struct gsm_bts *bts = sign_link->trx->bts;
- struct abis_om_hdr *oh = msgb_l2(mb);
- struct abis_om_nokia_hdr *noh = msgb_l3(mb);
+ struct abis_om_nokia_hdr *noh = (struct abis_om_nokia_hdr *) l3_msg;
uint8_t mt = noh->msg_type;
int ret = 0;
uint16_t ref = ntohs(noh->reference);
@@ -1800,18 +1802,13 @@
int ei_alarm_detail_len = 0;
int len_data;
-
- if (bts->nokia.wait_reset) {
- LOG_BTS(bts, DNM, LOGL_INFO, "Ignoring message while waiting for reset: %s\n", msgb_hexdump(mb));
- return ret;
- }
-
- if (oh->length < sizeof(struct abis_om_nokia_hdr)) {
- LOG_BTS(bts, DNM, LOGL_ERROR, "Message too short: %s\n", msgb_hexdump(mb));
+ if (l3_msg_len < sizeof(struct abis_om_nokia_hdr)) {
+ LOG_BTS(bts, DNM, LOGL_ERROR, "Message too short: %s\n",
+ osmo_hexdump(l3_msg, l3_msg_len));
return -EINVAL;
}
- len_data = oh->length - sizeof(struct abis_om_nokia_hdr);
+ len_data = l3_msg_len - sizeof(struct abis_om_nokia_hdr);
LOG_BTS(bts, DNM, LOGL_INFO, "Rx (0x%02X) %s\n", mt, get_msg_type_name_string(mt));
#if 0 /* debugging */
dump_elements(noh->data, len_data);
@@ -1852,8 +1849,11 @@
LOG_BTS(bts, DNM, LOGL_ERROR, "Rx No ACK (%u): don't know how to proceed\n", ack);
/* TODO: properly handle failures (NACK) */
}
- } else
- LOG_BTS(bts, DNM, LOGL_ERROR, "Rx MSG_ACK but no EI_ACK found: %s\n", msgb_hexdump(mb));
+ } else {
+ LOG_BTS(bts, DNM, LOGL_ERROR,
+ "Rx MSG_ACK but no EI_ACK found: %s\n",
+ osmo_hexdump(l3_msg, l3_msg_len));
+ }
/* TODO: the assumption for the following is that no NACK was received */
@@ -2011,7 +2011,87 @@
return ret;
}
-/* TODO: put in a separate file ? */
+static int abis_nm_rcvmsg_fom_seg(struct msgb *msg)
+{
+ struct e1inp_sign_link *sign_link = (struct e1inp_sign_link *)msg->dst;
+ struct gsm_bts *bts = sign_link->trx->bts;
+ struct abis_om_hdr *oh = msgb_l2(msg);
+ unsigned seg_len = oh->length;
+ uint8_t expect_seq;
+
+ /* 0 length segments aren't possible, valid range for segment length
+ * is [1,256] bytes, with code of 0 meaning 256. */
+ if (seg_len == 0)
+ seg_len = 256;
+ if (msgb_l3len(msg) < seg_len) {
+ LOG_BTS(bts, DNM, LOGL_ERROR,
+ "Message too short per FOM header: %s\n",
+ msgb_hexdump(msg));
+ return -EINVAL;
+ }
+
+ switch (oh->placement) {
+ case ABIS_OM_PLACEMENT_ONLY:
+ case ABIS_OM_PLACEMENT_FIRST:
+ /* clear any previous reassembly */
+ bts->nokia.oml_seg_rx.active = false;
+ expect_seq = 0;
+ break;
+ case ABIS_OM_PLACEMENT_MIDDLE:
+ case ABIS_OM_PLACEMENT_LAST:
+ if (!bts->nokia.oml_seg_rx.active) {
+ LOG_BTS(bts, DNM, LOGL_ERROR,
+ "Rx ABIS OML fragment without prior part(s)\n");
+ return -EINVAL;
+ }
+ expect_seq = bts->nokia.oml_seg_rx.seg_count;
+ break;
+ default:
+ LOG_BTS(bts, DNM, LOGL_ERROR,
+ "Rx ABIS OML placement 0x%x is invalid\n",
+ oh->placement);
+ bts->nokia.oml_seg_rx.active = false;
+ return -EINVAL;
+ }
+ if (oh->sequence != expect_seq) {
+ LOG_BTS(bts, DNM, LOGL_ERROR,
+ "Rx ABIS OML sequence 0x%x != expected 0x%x\n",
+ oh->sequence, expect_seq);
+ bts->nokia.oml_seg_rx.active = false;
+ return -EINVAL;
+ }
+
+ switch (oh->placement) {
+ case ABIS_OM_PLACEMENT_ONLY:
+ return abis_nm_rcvmsg_fom(sign_link, msgb_l3(msg), seg_len);
+ case ABIS_OM_PLACEMENT_FIRST:
+ bts->nokia.oml_seg_rx.active = true;
+ bts->nokia.oml_seg_rx.seg_count = 0;
+ bts->nokia.oml_seg_rx.byte_count = 0;
+ break;
+ case ABIS_OM_PLACEMENT_MIDDLE:
+ case ABIS_OM_PLACEMENT_LAST:
+ if (bts->nokia.oml_seg_rx.seg_count >= NOKIA_OML_MAX_RX_SEGMENTS) {
+ LOG_BTS(bts, DNM, LOGL_ERROR,
+ "segmented OML message exceeds current limit of %d segments\n",
+ NOKIA_OML_MAX_RX_SEGMENTS);
+ bts->nokia.oml_seg_rx.active = false;
+ return -EMSGSIZE;
+ }
+ break;
+ default:
+ OSMO_ASSERT(0);
+ }
+ memcpy(bts->nokia.oml_seg_rx.buffer + bts->nokia.oml_seg_rx.byte_count,
+ msgb_l3(msg), seg_len);
+ bts->nokia.oml_seg_rx.byte_count += seg_len;
+ bts->nokia.oml_seg_rx.seg_count++;
+ if (oh->placement != ABIS_OM_PLACEMENT_LAST)
+ return 0;
+ bts->nokia.oml_seg_rx.active = false;
+ return abis_nm_rcvmsg_fom(sign_link, bts->nokia.oml_seg_rx.buffer,
+ bts->nokia.oml_seg_rx.byte_count);
+}
int abis_nokia_rcvmsg(struct msgb *msg)
{
@@ -2020,14 +2100,18 @@
struct abis_om_hdr *oh = msgb_l2(msg);
int rc = 0;
- /* Various consistency checks */
- if (oh->placement != ABIS_OM_PLACEMENT_ONLY) {
- LOG_BTS(bts, DNM, LOGL_ERROR, "Rx ABIS OML placement 0x%x not supported\n", oh->placement);
- if (oh->placement != ABIS_OM_PLACEMENT_FIRST)
- return -EINVAL;
+ if (bts->nokia.wait_reset) {
+ LOG_BTS(bts, DNM, LOGL_INFO, "Ignoring message while waiting for reset: %s\n", msgb_hexdump(msg));
+ msgb_free(msg);
+ return 0;
}
- if (oh->sequence != 0) {
- LOG_BTS(bts, DNM, LOGL_ERROR, "Rx ABIS OML sequence 0x%x != 0x00\n", oh->sequence);
+
+ /* Various consistency checks */
+ if (msgb_l2len(msg) < sizeof(*oh)) {
+ LOG_BTS(bts, DNM, LOGL_ERROR,
+ "Message too short for FOM header: %s\n",
+ msgb_hexdump(msg));
+ msgb_free(msg);
return -EINVAL;
}
msg->l3h = (unsigned char *)oh + sizeof(*oh);
@@ -2035,7 +2119,7 @@
switch (oh->mdisc) {
case ABIS_OM_MDISC_FOM:
LOG_BTS(bts, DNM, LOGL_INFO, "Rx ABIS_OM_MDISC_FOM\n");
- rc = abis_nm_rcvmsg_fom(msg);
+ rc = abis_nm_rcvmsg_fom_seg(msg);
break;
case ABIS_OM_MDISC_MANUF:
LOG_BTS(bts, DNM, LOGL_INFO, "Rx ABIS_OM_MDISC_MANUF: ignoring\n");
@@ -2046,7 +2130,7 @@
break;
default:
LOG_BTS(bts, DNM, LOGL_ERROR, "Rx unknown ABIS OML message discriminator 0x%x\n", oh->mdisc);
- return -EINVAL;
+ rc = -EINVAL;
}
msgb_free(msg);
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/42712?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Icd429552c3b5e90d6c5d3ae5f52afd6550e3cebc
Gerrit-Change-Number: 42712
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Attention is currently required from: Hoernchen, osmith.
Jenkins Builder has posted comments on this change by Hoernchen. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42330?usp=email )
Change subject: fw source: force reformat once and for all
......................................................................
Patch Set 4:
(1 comment)
File sysmoOCTSIM/dfu_descriptors.h:
Robot Comment from checkpatch (run ID ):
https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42330/comment/f9e2f4a6_a5… :
PS4, Line 30: #define DFURT_IF_DESCRIPTOR_STRUCT \
macros should not use a trailing semicolon
--
To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42330?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-ccid-firmware
Gerrit-Branch: master
Gerrit-Change-Id: Iacc086bb566551225e7a21b639a1ad2ec257484f
Gerrit-Change-Number: 42330
Gerrit-PatchSet: 4
Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-CC: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 28 Apr 2026 17:18:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Attention is currently required from: laforge.
Hello Jenkins Builder, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42331?usp=email
to look at the new patch set (#4).
Change subject: fw: add git blame ignore file
......................................................................
fw: add git blame ignore file
Reformatting should not pollute blame, so ignore those revs.
Change-Id: I35b86f52d491c9e28ab0af9e3e3d4fd5f6dbd119
---
A .git-blame-ignore-revs
1 file changed, 2 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/31/42331/4
--
To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42331?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-ccid-firmware
Gerrit-Branch: master
Gerrit-Change-Id: I35b86f52d491c9e28ab0af9e3e3d4fd5f6dbd119
Gerrit-Change-Number: 42331
Gerrit-PatchSet: 4
Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Attention is currently required from: Hoernchen, osmith.
Hello Jenkins Builder, laforge, osmith,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42330?usp=email
to look at the new patch set (#4).
Change subject: fw source: force reformat once and for all
......................................................................
fw source: force reformat once and for all
This commit applies the rules to all files that matter
(obv excluding asf4 code) since it is impossible to modify code
because the code never used the code style enforced by the
linter/clang-format and
1) changing code
2) reformatting code
3) extracting the reformatting changes for the modified lines as a
separate commit
4) commiting standalone reformatting changes
4) commiting the actual code change on top
is a workflow that takes forever and is completely ridiculous because
the whole point of formatter rules is to apply them.
This needs a second commit with .git-blame-ignore-revs to not pollute blame.
Change-Id: Iacc086bb566551225e7a21b639a1ad2ec257484f
---
M .checkpatch.conf
M ccid_common/ccid_device.c
M ccid_common/ccid_device.h
M ccid_common/ccid_proto.c
M ccid_common/ccid_proto.h
M ccid_common/ccid_slot_fsm.c
M ccid_common/cuart.c
M ccid_common/cuart.h
M ccid_common/iso7816_3.c
M ccid_common/iso7816_fsm.c
M ccid_common/iso7816_fsm.h
M ccid_host/ccid_main_functionfs.c
M ccid_host/ccid_slot_sim.c
M ccid_host/cuart_driver_tty.c
M ccid_host/cuart_fsm_test.c
M ccid_host/cuart_test.c
M ccid_host/hub_main_functionfs.c
M ccid_host/logging.c
M ccid_host/utils_ringbuffer.c
M ccid_host/utils_ringbuffer.h
M sysmoOCTSIM/command.c
M sysmoOCTSIM/command.h
M sysmoOCTSIM/cuart_driver_asf4_usart_async.c
M sysmoOCTSIM/dfu_descriptors.h
M sysmoOCTSIM/driver_init.c
M sysmoOCTSIM/driver_init.h
M sysmoOCTSIM/i2c_bitbang.c
M sysmoOCTSIM/i2c_bitbang.h
M sysmoOCTSIM/libosmo_emb.c
M sysmoOCTSIM/libosmo_emb.h
M sysmoOCTSIM/linuxlist_atomic.h
M sysmoOCTSIM/main.c
M sysmoOCTSIM/ncn8025.c
M sysmoOCTSIM/ncn8025.h
M sysmoOCTSIM/octsim_i2c.c
M sysmoOCTSIM/replace.h
M sysmoOCTSIM/talloc.c
M sysmoOCTSIM/talloc.h
M sysmoOCTSIM/usb_descriptors.c
M sysmoOCTSIM/usb_descriptors.h
M sysmoOCTSIM/usb_dfu.h
M sysmoOCTSIM/usb_start.c
M sysmoOCTSIM/usb_start.h
43 files changed, 1,857 insertions(+), 2,078 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/30/42330/4
--
To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42330?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-ccid-firmware
Gerrit-Branch: master
Gerrit-Change-Id: Iacc086bb566551225e7a21b639a1ad2ec257484f
Gerrit-Change-Number: 42330
Gerrit-PatchSet: 4
Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-CC: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de>