aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
AgeCommit message (Collapse)AuthorFilesLines
2009-07-12give ip.access RSL IE's their proper namesHarald Welte2-11/+25
2009-07-12more ip.access abis_nm attributesHarald Welte4-19/+51
we also rename some existing attributes to reflect reality
2009-07-09abis_rsl.c: Clarify from which specification this table comes fromHolger Hans Peter Freyther1-1/+2
It appears to be the table of TS 05.02.
2009-07-08ipacess-config: Handle NVATTR NACKs in ipaccess-configHolger Hans Peter Freyther3-0/+42
Currently we send the attribute changes in a send and forget fashion. But sometimes the nanoBTS is sending us a NACK, e.g with a invalid unit id. Start handling the NACK and provide an error message to the user. The error message is not yet describing the cause of the error but this is a slight progress to the previous silent failure.
2009-07-05Merge commit 'origin/master'Harald Welte1-2/+21
2009-07-05Store classmark1/2/3 in equipment SQL tableHarald Welte3-18/+66
For further evaluation/analysis, this patch stores the classmark 1, 2 and 3 values of every equipment in the SQL database. We can use this non-volatile data to determine the supported features for each handset that we've ever seen on our network.
2009-07-05remove SI3 and SI4 rest octetsHarald Welte1-17/+6
As Dieter has pointed out, we currently send incorrect information in the rest octets, particularly about our GPRS capability. Since the format of the rest octets is highly complex, and we don't actually need any of those features yet, we might just fill them with padding.
2009-07-04ipaccess-config: Add --help to the ipaccess-configHolger Hans Peter Freyther1-2/+21
Just a beginning...
2009-07-04make sure we always schedule a location updating rejectHarald Welte1-6/+5
IT sems that if a MS uses the TMSI of a previous network, we did not start the reject timer. Thanks to Andreas Eversberg.
2009-07-04remove bogus extra check for data->imsi[0] in mncc_sendHarald Welte1-2/+1
As Andreas points out, we already check for this condition some 10 lines below, no need to check twice.
2009-07-04remove superfluous check for lchan->use > 0Harald Welte1-4/+2
If we receive one of those strange BS-11 "Cause 22" errors, we don't need to check if the lchan use counter is > 0. If it was 0, the lchan gets released anyway.
2009-07-04release channel on ERROR INDICATIONHarald Welte1-0/+3
This was proposed by Andreas Eversberg. I made it conditional on the T200 timer expired cause, as I'm not sure if we really should give up that quickly on other errors such as just simply receiving an unsolicited response.
2009-07-04gsm48 lchan signal handling: use correct pointerHarald Welte1-1/+1
As Andreas Eversberg has pointed out, we need to use signal_data rather than handler_data.
2009-07-04make sure misdn plugin handles DL_UNITDATA_INDHarald Welte1-0/+1
This reportedly fixes the problem that we didn't see MEASurement REPort messages from the BS-11.
2009-07-03add more TLV parser definitiosn for IPA NM attributesHarald Welte2-2/+14
2009-07-03add code to ipaccess-config set nanoBST NVRAM attributesHarald Welte2-2/+41
2009-07-01Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbscHarald Welte3-3/+3
2009-07-01ip.access test numbersHarald Welte1-0/+8
2009-07-01add more ipaccess 12.21 OML extension definitionsHarald Welte1-0/+40
2009-06-29the pointer "tall_bsc_ctx" belongs to the gsm_data.c file not to include file.Andreas Eversberg3-3/+3
2009-06-29Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbscHarald Welte34-242/+2447
2009-06-29ipaccess-find: remove compile-time specified local ip addressHarald Welte1-5/+14
2009-06-27fix various RSL msgb memory leaks in error pathsHarald Welte2-4/+11
2009-06-27cosmetic cleanup of LOCATION UPDATE REQ print-outHarald Welte1-8/+8
2009-06-27add new DMEAS debug category for measurement reportingHarald Welte4-20/+23
disable it by default
2009-06-26make tests compile again after talloc branch changesHarald Welte3-5/+11
2009-06-26use taloc_zero() rather than talloc() and explisit memset()Harald Welte7-19/+10
2009-06-26fix two segfaultsHarald Welte1-2/+5
* when paging callback is called, we need to consider a failed paging operation (i.e. lchan == NULL) * we have to zero-initialize every transaction that is allocated
2009-06-26zero-initialize some more memory that we allocateHarald Welte2-2/+2
2009-06-26add FIXME about memory leak every time we close telnetHarald Welte1-0/+3
2009-06-26fix MNCC memory leakHarald Welte1-0/+1
after passing the mncc structure (contained in msgb) to the mncc layer, we have to release its memory. This leak was discovered as a direct result of using talloc.
2009-06-26use named variant when allocating msgb'sHarald Welte11-17/+22
when we generate a talloc report (SIGUSR1), we can now see which system allocated a given msgb, this helps memory leak debugging
2009-06-26Merge branch 'master' into tallocHarald Welte3-6/+6
2009-06-26fix typosHarald Welte2-2/+2
2009-06-25abis_nm.h: Fix various typosHarald Welte1-4/+4
2009-06-22Add parsing of 'L1 information' IE of MEASUREMENT RESULTHarald Welte1-2/+43
2009-06-22Add parsing of 'L1 information' IE of MEASUREMENT RESULTHarald Welte1-2/+43
2009-06-22fix various talloc / dynamic bts/trx related bugsHarald Welte2-5/+13
Prior to this patch, nanobts was not able to operate after recent changes
2009-06-21switch to dynamically allocated BTS and TRX data structuresHarald Welte10-128/+204
This makes it much easier to do run-time configuration using the vty interface.
2009-06-20fix setfault during registration of VTY TRX functionHarald Welte1-1/+1
2009-06-20introduce talloc all over OpenBSCHarald Welte20-47/+2149
2009-06-20fix setfault during registration of VTY TRX functionHarald Welte1-1/+1
2009-06-20replace 'struct gsm_attr' by 'struct tlv_parsed'Harald Welte1-7/+4
This is where we will store the 12.21 / NM attributes for the given object.
2009-06-20Introduce BS and MS power control related functionsHarald Welte6-6/+212
* add bts->band field plus corresponding VTY and commandline argument * add trx->nominal_power and trx->max_power_red fields * add rsl_chan_bs_power_ctrl() to control TRX RF power for a given TS * add rsl_chan_ms_power_ctrl() to control MS RF power for a given lchan.
2009-06-20BS11: use abis_nm_set_{bts,radio}_attr()Harald Welte1-16/+14
BS11 should only use the raw message sending function if there is no standard alternative. For TRX and BTS attributes, we have the standard variant.
2009-06-15mncc: Add IMSI to gsm_mnccAndreas Eversberg2-2/+20
This allows us to do subscriber lookups based on IMSI and e.g. establish MT calls to subscribers with no assigned extension.
2009-06-14Merge branch 'mncc-harald'Harald Welte17-446/+2817
2009-06-14Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbscHarald Welte3-3/+3
2009-06-14Use correct cause value and cause locationAndreas Eversberg1-10/+22
Fixed indication of cause value and location. Replaced plain cause numbers by definitions from header file. diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c index f323a2a..39e7b1f 100644 --- a/openbsc/src/gsm_04_08.c +++ b/openbsc/src/gsm_04_08.c @@ -1865,8 +1865,7 @@ int mncc_release_ind(struct gsm_network *net, struct gsm_trans *trans, memset(&rel, 0, sizeof(rel)); rel.callref = callref; - mncc_set_cause(&rel, GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_UNASSIGNED_NR); + mncc_set_cause(&rel, location, value); return mncc_recvmsg(net, trans, MNCC_REL_IND, &rel); } @@ -1879,7 +1878,9 @@ void free_trans(struct gsm_trans *trans) /* send release to L4, if callref still exists */ if (trans->callref) { /* Ressource unavailable */ - mncc_release_ind(trans->network, trans, trans->callref, 1, 47); + mncc_release_ind(trans->network, trans, trans->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); if (trans->state != GSM_CSTATE_NULL) new_cc_state(trans, GSM_CSTATE_NULL); } @@ -1960,7 +1961,7 @@ static int setup_trig_pag_evt(unsigned int hooknum, unsigned int event, subscr->extension); /* Temporarily out of order */ mncc_release_ind(transt->network, transt, transt->callref, - 1, 27); + 1, GSM48_CC_CAUSE_DEST_OOO); transt->callref = 0; free_trans(transt); break; @@ -2270,7 +2271,8 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) "This is not allowed!\n"); /* Temporarily out of order */ rc = mncc_release_ind(trans->network, trans, trans->callref, - 1, 47); + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); trans->callref = 0; free_trans(trans); return rc; @@ -2287,7 +2289,8 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) if ((trans_id_mask & 0x007f) == 0x7f) { /* no free transaction ID */ rc = mncc_release_ind(trans->network, trans, trans->callref, - 1, 47); + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); trans->callref = 0; free_trans(trans); return rc; @@ -3373,14 +3376,18 @@ int mncc_send(struct gsm_network *net, int msg_type, void *arg) "unknown callref %d\n", data->called.number, get_mncc_name(msg_type), data->callref); /* Invalid call reference */ - return mncc_release_ind(net, NULL, data->callref, 1, 81); + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_INVAL_TRANS_ID); } if (!data->called.number[0] && !data->called.imsi[0]) { DEBUGP(DCC, "(bts - trx - ts - ti) " "Received '%s' from MNCC with " "no number or IMSI\n", get_mncc_name(msg_type)); /* Invalid number */ - return mncc_release_ind(net, NULL, data->callref, 1, 28); + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_INV_NR_FORMAT); } /* New transaction due to setup, find subscriber */ if (data->called.number[0]) @@ -3394,7 +3401,9 @@ int mncc_send(struct gsm_network *net, int msg_type, void *arg) "unknown subscriber %s\n", data->called.number, get_mncc_name(msg_type), data->called.number); /* Unknown subscriber */ - return mncc_release_ind(net, NULL, data->callref, 1, 1); + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_UNASSIGNED_NR); } /* If subscriber is not "attached" */ if (!subscr->lac) { @@ -3404,14 +3413,18 @@ int mncc_send(struct gsm_network *net, int msg_type, void *arg) get_mncc_name(msg_type), data->called.number); subscr_put(subscr); /* Temporarily out of order */ - return mncc_release_ind(net, NULL, data->callref, 1, 27); + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_DEST_OOO); } /* Create transaction */ if (!(trans = calloc(1, sizeof(struct gsm_trans)))) { DEBUGP(DCC, "No memory for trans.\n"); subscr_put(subscr); /* Ressource unavailable */ - mncc_release_ind(net, NULL, data->callref, 1, 47); + mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); return -ENOMEM; } trans->callref = data->callref;
2009-06-14Fix lchan refcounting in case of IMSI DETACHAndreas Eversberg1-2/+0
Removed lchan_put() after IMSI detach function. We don't need to put lchan, because we don't hold a ressource.