Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2009-07-12 | more ip.access abis_nm attributes | Harald Welte | 4 | -19/+51 | |
we also rename some existing attributes to reflect reality | |||||
2009-07-09 | abis_rsl.c: Clarify from which specification this table comes from | Holger Hans Peter Freyther | 1 | -1/+2 | |
It appears to be the table of TS 05.02. | |||||
2009-07-08 | ipacess-config: Handle NVATTR NACKs in ipaccess-config | Holger Hans Peter Freyther | 3 | -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-05 | Merge commit 'origin/master' | Harald Welte | 1 | -2/+21 | |
2009-07-05 | Store classmark1/2/3 in equipment SQL table | Harald Welte | 3 | -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-05 | remove SI3 and SI4 rest octets | Harald Welte | 1 | -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-04 | ipaccess-config: Add --help to the ipaccess-config | Holger Hans Peter Freyther | 1 | -2/+21 | |
Just a beginning... | |||||
2009-07-04 | make sure we always schedule a location updating reject | Harald Welte | 1 | -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-04 | remove bogus extra check for data->imsi[0] in mncc_send | Harald Welte | 1 | -2/+1 | |
As Andreas points out, we already check for this condition some 10 lines below, no need to check twice. | |||||
2009-07-04 | remove superfluous check for lchan->use > 0 | Harald Welte | 1 | -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-04 | release channel on ERROR INDICATION | Harald Welte | 1 | -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-04 | gsm48 lchan signal handling: use correct pointer | Harald Welte | 1 | -1/+1 | |
As Andreas Eversberg has pointed out, we need to use signal_data rather than handler_data. | |||||
2009-07-04 | make sure misdn plugin handles DL_UNITDATA_IND | Harald Welte | 1 | -0/+1 | |
This reportedly fixes the problem that we didn't see MEASurement REPort messages from the BS-11. | |||||
2009-07-03 | add more TLV parser definitiosn for IPA NM attributes | Harald Welte | 2 | -2/+14 | |
2009-07-03 | add code to ipaccess-config set nanoBST NVRAM attributes | Harald Welte | 2 | -2/+41 | |
2009-07-01 | Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbsc | Harald Welte | 3 | -3/+3 | |
2009-07-01 | ip.access test numbers | Harald Welte | 1 | -0/+8 | |
2009-07-01 | add more ipaccess 12.21 OML extension definitions | Harald Welte | 1 | -0/+40 | |
2009-06-29 | the pointer "tall_bsc_ctx" belongs to the gsm_data.c file not to include file. | Andreas Eversberg | 3 | -3/+3 | |
2009-06-29 | Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbsc | Harald Welte | 34 | -242/+2447 | |
2009-06-29 | ipaccess-find: remove compile-time specified local ip address | Harald Welte | 1 | -5/+14 | |
2009-06-27 | fix various RSL msgb memory leaks in error paths | Harald Welte | 2 | -4/+11 | |
2009-06-27 | cosmetic cleanup of LOCATION UPDATE REQ print-out | Harald Welte | 1 | -8/+8 | |
2009-06-27 | add new DMEAS debug category for measurement reporting | Harald Welte | 4 | -20/+23 | |
disable it by default | |||||
2009-06-26 | make tests compile again after talloc branch changes | Harald Welte | 3 | -5/+11 | |
2009-06-26 | use taloc_zero() rather than talloc() and explisit memset() | Harald Welte | 7 | -19/+10 | |
2009-06-26 | fix two segfaults | Harald Welte | 1 | -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-26 | zero-initialize some more memory that we allocate | Harald Welte | 2 | -2/+2 | |
2009-06-26 | add FIXME about memory leak every time we close telnet | Harald Welte | 1 | -0/+3 | |
2009-06-26 | fix MNCC memory leak | Harald Welte | 1 | -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-26 | use named variant when allocating msgb's | Harald Welte | 11 | -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-26 | Merge branch 'master' into talloc | Harald Welte | 3 | -6/+6 | |
2009-06-26 | fix typos | Harald Welte | 2 | -2/+2 | |
2009-06-25 | abis_nm.h: Fix various typos | Harald Welte | 1 | -4/+4 | |
2009-06-22 | Add parsing of 'L1 information' IE of MEASUREMENT RESULT | Harald Welte | 1 | -2/+43 | |
2009-06-22 | Add parsing of 'L1 information' IE of MEASUREMENT RESULT | Harald Welte | 1 | -2/+43 | |
2009-06-22 | fix various talloc / dynamic bts/trx related bugs | Harald Welte | 2 | -5/+13 | |
Prior to this patch, nanobts was not able to operate after recent changes | |||||
2009-06-21 | switch to dynamically allocated BTS and TRX data structures | Harald Welte | 10 | -128/+204 | |
This makes it much easier to do run-time configuration using the vty interface. | |||||
2009-06-20 | fix setfault during registration of VTY TRX function | Harald Welte | 1 | -1/+1 | |
2009-06-20 | introduce talloc all over OpenBSC | Harald Welte | 20 | -47/+2149 | |
2009-06-20 | fix setfault during registration of VTY TRX function | Harald Welte | 1 | -1/+1 | |
2009-06-20 | replace 'struct gsm_attr' by 'struct tlv_parsed' | Harald Welte | 1 | -7/+4 | |
This is where we will store the 12.21 / NM attributes for the given object. | |||||
2009-06-20 | Introduce BS and MS power control related functions | Harald Welte | 6 | -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-20 | BS11: use abis_nm_set_{bts,radio}_attr() | Harald Welte | 1 | -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-15 | mncc: Add IMSI to gsm_mncc | Andreas Eversberg | 2 | -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-14 | Merge branch 'mncc-harald' | Harald Welte | 17 | -446/+2817 | |
2009-06-14 | Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbsc | Harald Welte | 3 | -3/+3 | |
2009-06-14 | Use correct cause value and cause location | Andreas Eversberg | 1 | -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-14 | Fix lchan refcounting in case of IMSI DETACH | Andreas Eversberg | 1 | -2/+0 | |
Removed lchan_put() after IMSI detach function. We don't need to put lchan, because we don't hold a ressource. | |||||
2009-06-12 | make btstype2str return a const char* to make gcc 4.4 happy | Holger Hans Peter Freyther | 2 | -2/+2 | |