aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/gsm_data.h
AgeCommit message (Collapse)AuthorFilesLines
2010-07-31chan_alloc: Change Channel Release to release SAPIs, then the channelHolger Hans Peter Freyther1-0/+2
Currently every SAPI release indication will trigger the channel. It was possible that we had SAPI=3 and SAPI=0 allocated and we tried to release the channel by sending a RF Channel Release, the BTS answered with a RF Channel Release ACK but also sent the SAPI Release Indication which triggered a channel release here. So it was possible that we would have released a newly allocated channel because of the SAPI release of the old connection. This code now works by releasing all SAPIs from highest to lowest, then sending a SACH Deactivate and finally releasing the channel. This approach is in use on the on-waves/bsc-master.
2010-07-30[BSC] Add support for configfile-hardcoded System Information messagesHarald Welte1-0/+4
2010-07-22ipaccess-config/network-listen updateHarald Welte1-0/+1
* transition through cycles of NWL tests
2010-07-22ipaccess-config / network listen: ordered list of RxLevelsHarald Welte1-0/+3
Use libosmocore 'rxlev_stat' module to generate an ordered list of ARFCN's, sorted by RxLev while performing test nr. 64
2010-07-22move ip.access netowrk listen (NWL) to network_listen.cHarald Welte1-0/+3
Also, we now re-start the network listen test after it has finished, so if you run a test from ipaccess-find, the test will get re-started and re-started all the time.
2010-07-05msc: Create a dummy operation to keep the channel open for five secondsHolger Hans Peter Freyther1-0/+9
* We should create the transaction for SMS, CC on the CM Service Request but for now we will use a band aid and create a dummy operarion to wait five seconds for the transaction to be opened.
2010-06-30handover: Attempt to use the same gsm_subscriber_conn for new/old channelHolger Hans Peter Freyther1-0/+1
The transaction should not know on which lchan we are operating as this can change due handover. Add untested code to share the subscriber connection of the new and old lchan and move the pointer in case of success/failure. Also on a clear command we will free any resources allocated... This code is not tested and needs to be debugged, but it should have the right structure. I am going to fix a potential memleak in the next commit.
2010-06-28bsc_msc: Remove use_count from the subscriber connectionHolger Hans Peter Freyther1-26/+1
A channel will be released in case of * Errors via the clear_request callback... * no more transactions and operations are going on. This means that if we do something without a transaction the channel might be closed down right away. The bug fix will be to create a transaction/operation.
2010-06-28bsc_api: Allocate the subscriber_connection dynamicallyHolger Hans Peter Freyther1-2/+4
This is a big change to the way we use the subscriber connection. From now on it is is dynamically allocated and we will slowly move from a 1:1 lchan to conn to having more than one lchan per connection. This is the first commit, the subscr_con* methods will move to gsm_data once the use_count is removed from the connection, the freeing of the connection will also change.
2010-06-22abis_rsl: Send the IMMEDIATE Assignment after the Channel Ack.Holger Hans Peter Freyther1-0/+4
The Channel Activate might be sent to a different TRX than the Immediate Assignment. So we need to make sure that the channel is activated before we send the immediate assignment for the RACH. Another reason for that is according to GSM 08.58 we should take the frame number from the activate and use it for the starting time inside the immediate assignment message. We obviously do not do this yet. The code assumes that the BTS will either respond with a CHAN ACK or a CHAN NACK if not the lchan will remain in the request state.
2010-06-20[BSC] Hopping: Add MA IE to ASS CMD, IMM ASS CMD and HO CMDHarald Welte1-0/+1
Also, make sure the bit ordering in the pre-computed MA is correct, as well as the cell channel description of the target cell being present in the HO CMD.
2010-06-20[BSC] Keep a SYSTEM INFORMATION cache for each BTSHarald Welte1-0/+6
This will later be useful for handover where we need to copy the cell channel allocation into a normal 04.08 message
2010-06-20[BSC] Generate MA for each timeslot that has hopping enabledHarald Welte1-0/+4
The MA is used in 04.08 channel assignment related messages
2010-06-20[BSC] introduce the concept of 'BTS features'Harald Welte1-0/+13
We can then check if a bts supports a certain feature or not.
2010-06-20[BSC] Implement per-timeslot ARFCN lists for frequency hoppingHarald Welte1-0/+3
We now compute the Cell Channel Description for SI 1 by bit-wise OR of the ARFCN bitmask of each timeslot on all the TRX of the BTS. Also, support generating a GSM 04.08 Channel Description IE for the hopping case (with HSN/MAIO instead of ARFCN). What's still missing now: Sending the 04.08 Mobile Allocation IE
2010-06-20unfinished support for hopping channelsHarald Welte1-0/+5
2010-06-17bsc_api: Move gsm48_rcvmsg into the BSC API and dispatch.Holger Hans Peter Freyther1-0/+1
The next step in the way to the BSC API. We have a clear a new connection was opened signal now... and the MSC could use it...
2010-06-15msc: Add msc ip-tos NR option for the BSCHolger Hans Peter Freyther1-0/+1
Allow to set the TOS field via the VTY interface. The SO_PRIORITY was not used as it has no effect on the packets being sent (in contrast to the documentation).
2010-06-15bsc_api: Implement transparent RLL establishment and SAPI n REJECTHolger Hans Peter Freyther1-0/+2
When submitting a DTAP message, the BSC API will attempt to establish the RLL layer and then send the message or send an SAPI n REJECT. This will be used by the SMS code.
2010-06-14auth: Add support for XOR test A3A8 algo (and vty commands)Sylvain Munaut1-0/+2
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-06-14gsm_04_08: Store the key_seq given in LOC UPD REQUEST in stateSylvain Munaut1-0/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-06-14gsm_04_08: Add a operation to enable ciphering on a lchanSylvain Munaut1-0/+18
This will take care of the auth/check/enable cipher sequence and call a callback function when done. Currently the negotiated Kc is saved but not re-used, so there is an authentication each time ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-06-14auth: Add #define for special value for key_seqSylvain Munaut1-0/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-06-14bsc_api: Add init, dispatch the clear request when a channel is going missingHolger Hans Peter Freyther1-0/+2
2010-05-31[rsl] Introduce an error state for the lchan and set it on releaseHolger Hans Peter Freyther1-0/+2
When we issue a RF Channel Release in case of a failure we receive RLL release indications after the channel was tearn down and we issue another RF Channel Release as a result. The channel allocator might have already allocated this channel and we release the channel again with another MS on it. Make rsl_rf_chan_release take an error argument and make it set a new state in case of an error and change the RF Channel Release ack to not set the state back to none in case of an error but wait for a timeout that is a bit higher than T3111. I tested this with removing the battery during a phonecall and waiting for the channel failure. With this test we only send the release once.
2010-05-31[rsl] Implement the T3111 timer to delay the RF Channel releaseHolger Hans Peter Freyther1-0/+1
2010-05-14VTY: Introduce common code to add 'description' to objects like BTSHarald Welte1-0/+4
There is now an option to add a human-readable description to objects that are configured in the VTY.
2010-05-11[gprs] NS/BSSGP: Make all timers configurable from VTYHarald Welte1-0/+2
2010-05-04[gprs] correctly calculate the length of the BSSGP PDUsHarald Welte1-0/+1
2010-05-04[gprs] pass BSSGP UL-UNITDATA Cell ID up into GMM layerHarald Welte1-0/+4
BSSGP stores a pointer to the Cell Identifier IE in msgb->cb, which is later used by the GMM layer to identify the cell that has sent a given message. This now also means that the gsm_04_08_gprs.c code is free of any legacy references to msg->trx or struct gsm_bts.
2010-05-04[gprs] SGSN: Expect all Identifiers to be stored at highest levelHarald Welte1-0/+2
We now expect the highest level (actual SGSN GMM code) to know all identifiers for every element in the protocol stack, i.e. TLLI, SAPI, BVCI and NSEI. The layer-inetrnal state is looked up based on those identifiers. The reason for this is to ensure only the highest level state needs to be persistent, while everything else can be regenerated dynamically (e.g. in a SGSN restart)
2010-05-04[gprs] Ensure msgb->l3h points to Layer3 (04.08)Harald Welte1-3/+5
In the old code l3h = BSSGP, l4h = LLC, cb[gmmh] = 04.08 Now, this has been changed to cb[bssgph] = BSSGP, cb[llch] = LLC, l3h = 04.08 This way, GSM general 04.08 and GPRS 04.08 code can expect a GSM 04.08 header at msgb->l3h
2010-05-04gprs: remove msgb->nsvc pointer and replace it with NSEI and BVCIHarald Welte1-4/+7
According to TS 08.16, the BSSGP layer needs to specify NSEI and BVCI when executing the NS UNITDATA REQUEST primitive of the underlying NS layer. Rather than passing around a pointer to the 'struct gprs_nsvc', we now have NSEI and BVCI as members of 'struct obsc_msgb_cb' and set them when BSSGP hands a message down to NS. NS then does a lookup of the 'gprs_nsvc' based on the NSEI parameter.
2010-05-04gprs: Use new msgb->cb[] for storing a pointer to the NS-VC through which it ↵Harald Welte1-0/+3
was received
2010-05-04gprs: Update gprs-sgsn branch to use new msgb->cb layoutHarald Welte1-0/+3
The explicit 'tlli, gmmh' members of struct msgb are gone from current libosmocore and have been replaced by the more generic 'control buffer' mechanism.
2010-05-04some more GPRS related commentsHarald Welte1-3/+6
2010-05-01'struct gprs_ra_id' is now defined in libosmocoreHarald Welte1-8/+0
2010-04-30define 'struct openbsc_msgb_cb' and accessor macro OBSC_MSGB_CB()Harald Welte1-0/+7
2010-04-30remove any reference to 'struct gsm_bts_link'Harald Welte1-5/+0
2010-04-25[vty] Allow to set the RACH NM attributes on a per BTS basisHolger Hans Peter Freyther1-0/+4
Be able to tune the RACH settings of the BTS via the vty interface, by default they are initialized to -1 which means we will use the content of the static array (BTS default) and can be changed via the VTY interface. I have verified the setting on the nanoBTS with wireshark and I have tested writing the config file.
2010-04-18GPRS: change 'gprs enabled <0-1>' to 'gprs mode (none|gprs|egprs)'Harald Welte1-1/+10
This causes some config file breakage but sounds like a much cleaner approach than to have two separate config variables for this.
2010-04-17[statistics] Keep track of OML/RSL failures of the BTS.Holger Hans Peter Freyther1-0/+4
2010-04-17[statistics] Keep track of rf failures and rll release failuresHolger Hans Peter Freyther1-0/+4
Add two new counters to count the RF Failures and the RLL Release failure and make them available via the vty interface.
2010-04-12ipaccess: Send RTP Payload IE for CRCX & MDCXSylvain Munaut1-0/+1
For GSM V1 FR, the payload type is fixed to 3 in the RFC. But for the other codecs, the payload type is dynamically assigned between 96 and 127. Here, we use a static mapping internal to OpenBSC. This patch is needed to make a rather old 139 unit (with sw version 120a002_v149b42d0) work with something else than FR codec. I also tested this patch on a newer 139 (with sw version 120a352_v267b22d0) to make sure it didn't add a regression. More testing with newer EDGE units should be done by whoever has some of theses. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-10[paging] Simplify the last request and treat llist as a queueHolger Hans Peter Freyther1-1/+0
The current code was overly complex. It tried to iterate over the list in a round robin and we had to keep track of the last element, see if we remove that one, check if the list becomes empty... This can all replaced by treating the double linked list as a queue. We take the item at the front, do something on it and then and then put it back to the list at the end.
2010-03-28RSL: keep track of ip.access dynamic TCH/PDCH activationHarald Welte1-1/+1
We use the (currently unusued) flags member of the bts_trx_ts structure to track if a dynamic TCH/PDCH is currently on PDCH mode or not.
2010-03-25Store the GSM BTS in the gsm subscriber connectionHolger Hans Peter Freyther1-1/+2
Remove further usage of lchan from the gsm 04.11 bits
2010-03-25lchan: Create a structure for MSC data of the lchanHolger Hans Peter Freyther1-27/+36
Prepare to split the BSC and the MSC part by putting the MSC data for a connection into a "gsm_subscriber_connection" struct and renaming the macros.
2010-03-22GPRS: make NSEI configurable from VTYHarald Welte1-0/+1
2010-03-22GPRS: make NSVC parameters VTY-configurableHarald Welte1-0/+4