summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-12-29 23:06:22 +0100
committerHarald Welte <laforge@gnumonks.org>2015-01-01 12:57:35 +0100
commit7ff77ec713c6569715077344563ff9ab1719619c (patch)
treefe91f7ae36a957dba83c60cc5aa34aadb775c6b7
parentf86852ce0bc7d4c854d6f6825f74ab30be64b5c5 (diff)
smscb: Prepare to fill in the info for CBCH in SI4
Pass the number of bytes the rest octet for si4 should fill.
-rw-r--r--openbsc/include/openbsc/rest_octets.h2
-rw-r--r--openbsc/src/libbsc/rest_octets.c4
-rw-r--r--openbsc/src/libbsc/system_information.c2
3 files changed, 4 insertions, 4 deletions
diff --git a/openbsc/include/openbsc/rest_octets.h b/openbsc/include/openbsc/rest_octets.h
index 56d4e0de8..963b010c9 100644
--- a/openbsc/include/openbsc/rest_octets.h
+++ b/openbsc/include/openbsc/rest_octets.h
@@ -55,7 +55,7 @@ struct gsm48_si_ro_info {
int rest_octets_si3(uint8_t *data, const struct gsm48_si_ro_info *si3);
/* Generate SI4 Rest Octets (Chapter 10.5.2.35) */
-int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4);
+int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4, int len);
enum pbcch_carrier_type {
PBCCH_BCCH,
diff --git a/openbsc/src/libbsc/rest_octets.c b/openbsc/src/libbsc/rest_octets.c
index 41bf5050b..4545794a9 100644
--- a/openbsc/src/libbsc/rest_octets.c
+++ b/openbsc/src/libbsc/rest_octets.c
@@ -141,13 +141,13 @@ static int append_lsa_params(struct bitvec *bv,
}
/* Generate SI4 Rest Octets (Chapter 10.5.2.35) */
-int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4)
+int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4, int len)
{
struct bitvec bv;
memset(&bv, 0, sizeof(bv));
bv.data = data;
- bv.data_len = 10; /* FIXME: up to ? */
+ bv.data_len = len;
/* SI4 Rest Octets O */
append_selection_params(&bv, &si4->selection_params);
diff --git a/openbsc/src/libbsc/system_information.c b/openbsc/src/libbsc/system_information.c
index 8a6d02671..5071b0693 100644
--- a/openbsc/src/libbsc/system_information.c
+++ b/openbsc/src/libbsc/system_information.c
@@ -595,7 +595,7 @@ static int generate_si4(uint8_t *output, struct gsm_bts *bts)
/* SI4 Rest Octets (10.5.2.35), containing
Optional Power offset, GPRS Indicator,
Cell Identity, LSA ID, Selection Parameter */
- rc = rest_octets_si4(restoct, &si_info);
+ rc = rest_octets_si4(restoct, &si_info, output + GSM_MACBLOCK_LEN - restoct);
return l2_plen + 1 + rc;
}