Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2009-07-05 | Store classmark1/2/3 in equipment SQL table | Harald Welte | 2 | -10/+49 | |
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 | 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 | 1 | -2/+13 | |
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 | 2 | -2/+2 | |
2009-06-29 | the pointer "tall_bsc_ctx" belongs to the gsm_data.c file not to include file. | Andreas Eversberg | 2 | -2/+2 | |
2009-06-29 | Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbsc | Harald Welte | 27 | -227/+2224 | |
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 | 3 | -20/+22 | |
disable it by default | |||||
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 | 10 | -14/+18 | |
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 | 2 | -2/+2 | |
2009-06-26 | fix typos | Harald Welte | 2 | -2/+2 | |
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 | 9 | -121/+189 | |
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 | 18 | -47/+1957 | |
2009-06-20 | fix setfault during registration of VTY TRX function | Harald Welte | 1 | -1/+1 | |
2009-06-20 | Introduce BS and MS power control related functions | Harald Welte | 4 | -6/+195 | |
* 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 | 1 | -2/+19 | |
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 | 13 | -388/+2439 | |
2009-06-14 | Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbsc | Harald Welte | 1 | -1/+1 | |
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 | 1 | -1/+1 | |
2009-06-12 | SMS: fix parsing of destination phone number | Harald Welte | 1 | -2/+3 | |
2009-06-12 | 04.08: Make mncc-harald branch work | Harald Welte | 1 | -2/+2 | |
This fixes two reasons for crashes due to uninitialized memory or wrong pointer passing introduced in my own mncc modifications | |||||
2009-06-12 | SMS: fix parsing of destination address BCD | Harald Welte | 1 | -1/+1 | |
this bug was introduced in Andreas' MNCC patches while altering decode_bcd_number(). | |||||
2009-06-12 | abis_nm: fix printing of ADMinistrative state | Harald Welte | 1 | -1/+1 | |
2009-06-11 | use less magic numbers (04.08 CC cause values) | Harald Welte | 2 | -13/+30 | |
Introduce a gsm48_cc_cause enum and use it from gsm_04_08 and MNCC, also make sure we use gsm48_cause_loc rather than plain numbers. | |||||
2009-06-10 | reworked MNCC codebase | Harald Welte | 11 | -384/+2407 | |
This is Harald's reworked MNCC base, slowly heading towards integration into master. The key changes are: * provide much more structure to the data in gsm_mncc * encode_* and decode_* functions now take a structure rather than tons of individual arguments (whose order nobody can remember) * make sure we don't have copies of the same code everywhere by introducing mncc_set_cause() and mncc_release_ind() * save horizontal screen space if possible * make sure we break lines > 80 characters | |||||
2009-06-10 | Merge commit 'origin/master' | Harald Welte | 6 | -41/+209 | |
2009-06-10 | [pcap] Write incoming packages without the extra mISDN header | Andreas Eversberg | 1 | -4/+7 | |
This patch fixes the PCAP logging. If frames are received from E1 interface, an 8 byte mISDN header (MISDN_HEADER_LEN) is in front of the RSL packet. When frames are transmitted to the E1 interface, the pcap_write_packet function will get a message buffer without the mISDN header in front of the RSL packet. The pcap file was tested and the output is correct. Follow up patches should make use the msgb->l2, make the ipaccess code use the pcap writing too... | |||||
2009-06-10 | Handle and dispatch paging requests in gsm_subscriber | Holger Freyther | 1 | -2/+108 | |
Implement subscr_get_channel and subscr_put_channel to a degree that SMS Submit and phone call scheduled at the same time will deliver both (one after the other). | |||||
2009-06-10 | Proposal for a "channel request" interface... | Holger Freyther | 3 | -3/+14 | |
Reuqests for a subscriber a stored within the gsm_subscriber datastructure and it will keep track how many channels are allocated for this user and of which type to decide on policy... e.g. attempt to submit SMS during a phone call and not doing paging but a simple (immediate) assignment of the channel... |