aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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-04update wireshark patches to current svn (28938)Harald Welte3-39/+39
2009-07-03support parsing of ip.access 12.21 test reportsHarald Welte1-58/+196
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-01wireshark: more work on completing abis_oml pluginHarald Welte1-22/+410
2009-07-01Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbscHarald Welte3-3/+3
2009-07-01updated version of wireshark ipaccess RSL plugin (just cosmetic changes)Harald Welte1-12/+19
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 Welte5-19/+1486
2009-06-26updated RSL wireshark patchHarald Welte1-33/+225
* parse ip.access messages with different (any) attribute order * identify RTP and RTCP streams to the RTP plugin
2009-06-26fix typosHarald Welte2-2/+2
2009-06-25add new wireshark A-bis OML dissector, incompleteHarald Welte1-0/+1463
2009-06-25enable OML dissector lookup, register ourselves as "gsm_abis_ip" dissectorHarald Welte1-13/+17
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-22Merge branch 'master' into tallocHarald Welte0-0/+0
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;