diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-07-29 11:44:28 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-07-29 11:44:28 +0200 |
commit | 901d57db07d21f8e7d7f4b11421f63c44c2b2600 (patch) | |
tree | 432aa762fd5194cf462127f1b47a24d81d58b6e2 /openbsc/src/libbsc | |
parent | 07b7bd79d68c56212b3e248e6f9273a6c556c69d (diff) | |
parent | f31dd860591e18d5f0ba45ef5d9ca8aac45fc9b7 (diff) |
Merge branch 'master' of git.osmocom.org:openbsc
Diffstat (limited to 'openbsc/src/libbsc')
-rw-r--r-- | openbsc/src/libbsc/abis_nm.c | 2 | ||||
-rw-r--r-- | openbsc/src/libbsc/abis_rsl.c | 2 | ||||
-rw-r--r-- | openbsc/src/libbsc/bsc_init.c | 3 | ||||
-rw-r--r-- | openbsc/src/libbsc/bsc_vty.c | 17 | ||||
-rw-r--r-- | openbsc/src/libbsc/gsm_04_08_utils.c | 2 | ||||
-rw-r--r-- | openbsc/src/libbsc/paging.c | 14 |
6 files changed, 30 insertions, 10 deletions
diff --git a/openbsc/src/libbsc/abis_nm.c b/openbsc/src/libbsc/abis_nm.c index 494d4caba..49e86ba2c 100644 --- a/openbsc/src/libbsc/abis_nm.c +++ b/openbsc/src/libbsc/abis_nm.c @@ -776,7 +776,7 @@ static int sw_load_segment(struct abis_nm_sw *sw) char seg_buf[256]; char *line_buf = seg_buf+2; unsigned char *tlv; - uint8_t len; + int len; oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE); diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 8356bd9a5..d74907b0a 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -427,7 +427,7 @@ int rsl_chan_activate_lchan(struct gsm_lchan *lchan, uint8_t act_type, */ msgb_v_put(msg, RSL_IE_CHAN_IDENT); len = msgb_put(msg, 1); - msgb_tlv_put(msg, GSM48_IE_CHANDESC_2, sizeof(cd), (const uint8_t *) &cd); + msgb_tv_fixed_put(msg, GSM48_IE_CHANDESC_2, sizeof(cd), (const uint8_t *) &cd); if (lchan->ts->hopping.enabled) msgb_tlv_put(msg, GSM48_IE_MA_AFTER, lchan->ts->hopping.ma_len, diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c index 1be8cb7a1..02a3adfcc 100644 --- a/openbsc/src/libbsc/bsc_init.c +++ b/openbsc/src/libbsc/bsc_init.c @@ -406,6 +406,9 @@ static int bootstrap_bts(struct gsm_bts *bts) bts->si_common.ncc_permitted = 0xff; + /* Initialize the BTS state */ + gsm_bts_mo_reset(bts); + return 0; } diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c index 971cdf703..26ed7d9f4 100644 --- a/openbsc/src/libbsc/bsc_vty.c +++ b/openbsc/src/libbsc/bsc_vty.c @@ -189,9 +189,9 @@ static void net_dump_vty(struct vty *vty, struct gsm_network *net) dump_pchan_load_vty(vty, " ", &pl); /* show rf */ - if (net->msc_data && net->msc_data->rf_ctl) + if (net->msc_data && net->msc_data->rf_ctrl) vty_out(vty, " Last RF Command: %s%s", - net->msc_data->rf_ctl->last_state_command, + net->msc_data->rf_ctrl->last_state_command, VTY_NEWLINE); } @@ -1055,11 +1055,14 @@ DEFUN(show_e1ts, } if (argc >= 1) { int num = atoi(argv[0]); - llist_for_each_entry(line, &e1inp_line_list, list) { - if (line->num == num) + struct e1inp_line *l; + llist_for_each_entry(l, &e1inp_line_list, list) { + if (l->num == num) { + line = l; break; + } } - if (!line || line->num != num) { + if (!line) { vty_out(vty, "E1 line %s is invalid%s", argv[0], VTY_NEWLINE); return CMD_WARNING; @@ -1067,7 +1070,7 @@ DEFUN(show_e1ts, } if (argc >= 2) { ts_nr = atoi(argv[1]); - if (ts_nr > NUM_E1_TS) { + if (ts_nr >= NUM_E1_TS) { vty_out(vty, "E1 timeslot %s is invalid%s", argv[1], VTY_NEWLINE); return CMD_WARNING; @@ -1157,7 +1160,7 @@ DEFUN(cfg_net_ncc, DEFUN(cfg_net_mnc, cfg_net_mnc_cmd, - "mobile network code <1-999>", + "mobile network code <0-999>", "Set the GSM mobile network code") { struct gsm_network *gsmnet = gsmnet_from_vty(vty); diff --git a/openbsc/src/libbsc/gsm_04_08_utils.c b/openbsc/src/libbsc/gsm_04_08_utils.c index 17bce85a6..92335f24c 100644 --- a/openbsc/src/libbsc/gsm_04_08_utils.c +++ b/openbsc/src/libbsc/gsm_04_08_utils.c @@ -190,7 +190,7 @@ enum gsm_chan_t get_ctype_by_chreq(struct gsm_network *network, uint8_t ra) return GSM_LCHAN_SDCCH; } -enum gsm_chreq_reason_t get_reason_by_chreq(uint8_t ra, int neci) +int get_reason_by_chreq(uint8_t ra, int neci) { int i; int length; diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c index 4dfa92161..fe60e3f6d 100644 --- a/openbsc/src/libbsc/paging.c +++ b/openbsc/src/libbsc/paging.c @@ -405,3 +405,17 @@ unsigned int paging_pending_requests_nr(struct gsm_bts *bts) return requests; } + +/** + * Find any paging data for the given subscriber at the given BTS. + */ +void *paging_get_data(struct gsm_bts *bts, struct gsm_subscriber *subscr) +{ + struct gsm_paging_request *req; + + llist_for_each_entry(req, &bts->paging.pending_requests, entry) + if (req->subscr == subscr) + return req->cbfn_param; + + return NULL; +} |