Commit Graph

8684 Commits

Author SHA1 Message Date
Harald Welte 45b407ad25 With this patch, the TRAU muxing code supports not just bridging only.
A new function trau_recv_lchan() is used to link a channel to a call reference
of a transaction. (Transactions are used in later patches.) TRAU frames will
then be forwarded to the application with the given call reference (in later
patches). Also the application can send TRAU frames by using trau_send_lchan().

A new list is introduced in trau_mux.c. (upqueue_entry) All subslots
that must be sent to application are listed here.

Received TRAU frames are written in the upqueue of application
interface, if a call reference is found in the upqueue-list. If an entry
is found the ss_entry list, the TRAU frames are bridged as before. The
frames have a message type (msg_type), a call reference (callref) and a
trau frame (data). The length of trau frame is defined by the content of
the c-bits inside the frame.

There is no support for ip.access yet, as they don't use the traditional
TRAU frame format. Harald must add this in order to use application interface
with ip-access. The bridging with ip-access works as before.
(Andreas Eversberg)
2009-05-23 15:51:12 +00:00
Harald Welte be99149e72 add new function gsm_bts_by_lac() to search for BTS based on location area 2009-05-23 13:56:40 +00:00
Harald Welte c1d2aaecb5 RSL should not be called RSSL in the debug definition (Andreas Eversberg) 2009-05-23 06:43:35 +00:00
Harald Welte c125a680ef A new debug flag is introduced: "DMNCC". MNCC is the Mobile Network Call
Control. This is required for later patches, that extract the call
control from gsm_04_08.c. (Andreas Eversberg)
2009-05-23 06:42:38 +00:00
Harald Welte a4d49e96ab Some messages have one or two length-value information elements. The is
no IE type included in the message. These information elements are
mandatory, so their actual IE type is known. The improved parse_tlv()
function allows to parse zero, one, or two length-value elements.
(Andreas Eversberg)
2009-05-23 06:39:58 +00:00
Harald Welte e7b452a7a0 add FIXME comment about the fact that we're paging in the wrong BTS 2009-05-23 06:34:37 +00:00
Harald Welte f55b49fef3 To slow down transmission of many ABIS frames at a time, a delay timer
is used for the E1's time slot. This timer replaces the "usleep()"
function, so the process will not block the execution of libbsc. The
timer is started after a frame is transmitted. If another frame is in
the transmit queue, the frame will only be queued until the timer times
out. If the timer is not running or times out, the frame is transmitted
and the timer is restarted.

The problem with partly provisioned TRX (locks show on LMT) is solved.
The adjustment for the inter frame delay of 50 miliseconds is for
further study.
(Andreas Eversberg)
2009-05-23 06:20:41 +00:00
Harald Welte 703af9887d fix some more compiler warnings 2009-05-23 06:14:44 +00:00
Harald Welte 75d34a8b3d fix two compiler warnings 2009-05-23 06:11:13 +00:00
Harald Welte 04d3c9224f An application that has own events and file descriptors, must poll
select function ob libbsc. A "polling" flag is used to enable polling.
In this case select() will not sleep until file descriptor events occurr
or nearest timer expires. Also a return value will indicate if there was
an event that has been handled. If there was an event, the application
decides to poll again and don't wait.

In case for bsc_hack, the polling flag is not set. select will sleep as
usual.

(Andreas Eversberg)
2009-05-23 06:07:04 +00:00
Harald Welte 7d14476a6e Correct handlong of data link status change (Andreas Eversberg) 2009-05-23 05:40:49 +00:00
Harald Welte 7572745816 Add missing "extern" prefix (Andreas Eversberg) 2009-05-23 05:26:29 +00:00
Harald Welte be68f6fc6c Change the variable "new" to "_new" in order to include it from C++ code.
The define "container_of" will cast pointer before assigning. Compilers
with stricter options require this. (Andreas Eversberg)
2009-05-23 05:24:48 +00:00
Harald Welte ff117a8d11 * rename the timer functions to avoid name collisions with libmisdn.
* the return value of bsc_update_timers() is required for applications to find out if a timer was fired
(Andreas Eversberg)
2009-05-23 05:22:08 +00:00
Harald Welte d6cab81175 vty: disable password encryption, remove dependency to lcrypt 2009-05-21 07:31:48 +00:00
Harald Welte 12247c6713 Fix compilation issues on OS X - mainly #include file changes (Lars Immisch) 2009-05-21 07:23:02 +00:00
Harald Welte ef061951e6 dump CCLK accuracy/type as part of bs11_config query 2009-05-17 12:43:42 +00:00
Harald Welte 7a2a71e255 revert commit #481: we actually still need that stupid usleep() to reliably bootstrap nanoBTS :( 2009-05-01 21:54:11 +00:00
Harald Welte c9e0218990 Fix "CM Service Request" parsing for Phase 1 devices. This means MO calls from phase1 should work now. 2009-05-01 19:07:53 +00:00
Harald Welte 440fed08ec implement parsing and printing of RSL measurement results 2009-05-01 18:43:47 +00:00
Harald Welte cf5b3597ed add verbose reporting of RR STATUS cause 2009-05-01 18:28:42 +00:00
Harald Welte 3cf7c3ff89 don't print rf resource indication messages, they clutter up the logs 2009-05-01 18:28:00 +00:00
Harald Welte 0db97b253d abis_nm: print some information about failure event report type / severity 2009-05-01 17:22:47 +00:00
Harald Welte 90f64767c4 print OML bts_nr rather than bts->nr 2009-05-01 17:22:09 +00:00
Harald Welte 6dab055752 print cause for channel activate NACK 2009-05-01 17:21:37 +00:00
Harald Welte e81899cc00 fix printing of ip.access disconnect cause 2009-05-01 16:01:00 +00:00
Harald Welte 70f9b3dcf8 remove any sleeping from the ip.access input code 2009-05-01 16:00:44 +00:00
Harald Welte a994a48635 remove misleading debug messages 2009-05-01 15:54:23 +00:00
Harald Welte cf55978e48 make sure we terminate bsc_hack if the OML/RSL listening sockets cannot be created 2009-05-01 15:43:49 +00:00
Harald Welte b463060db9 Fix long-standing bug: nanoBTS now even works after cold boot (first time after power up).
The problem in the old logic was that we started talking to a given object
(e.g. radio carrier) one we received an administrative state change report.  It
turns out we have to wait for the software activation report instead - and
everything suddenly works.
2009-05-01 15:43:22 +00:00
Harald Welte 6dafb7ba37 bs11_config build fix 2009-05-01 15:40:14 +00:00
Harald Welte f9a8cc3cba send a signal for every software activation or failure event report 2009-05-01 15:39:49 +00:00
Harald Welte 4cc34228d2 add VTY command to set BTS unit ID 2009-05-01 15:12:31 +00:00
Harald Welte 879c85a89c no need to make gsmnet structure non-static (fix from last commit) 2009-05-01 15:00:20 +00:00
Harald Welte edb3778542 * Add support for multiple ip.access nanoBTS at one BSC
* keep track of site_id/bts_id in struct gsm_bts
 * dynamically match incoming OML/RSL over TCP connections by BTS Unit ID
 * introduce new debug category DINP (separate from DMI for hexdumps)
 * remove ia_config() as it is no longer needed
 * 
* ensure that signalling links / E1 line information is correctly printed
* when bootstrapping RSL or OML, tell us for which BTS it is being doen
* separate bootstrap_bts() out from bootstrap_network()
* statically configure two ip.access BTS, one with unit id's 1800/0/0 and 1801/0/0
2009-05-01 14:59:07 +00:00
Harald Welte 4593ff3ace ensure the tag parsing function is the same as used in input/ipaccess.c
FIXME: remove this copy of the code
2009-05-01 14:53:36 +00:00
Harald Welte 23897662c7 make sure all REPORT type messages have debug statements printing object class and instance 2009-05-01 14:52:51 +00:00
Harald Welte 191280d04b abis_nm wants to use bts->bts_nr (the number of the BTS in the OML link) rather
than bts->nr (the number of the BTS in the BSC).
2009-05-01 13:20:04 +00:00
Harald Welte aeedeb41dd fix compiler warnings in abis_nm.c 2009-05-01 13:08:14 +00:00
Harald Welte 6c96ba5e4f abis_nm: print the NACK cause in human readable form 2009-05-01 13:03:40 +00:00
Holger Freyther acb688bc9b [misc] Sanity check and error messages in misdn.c
Add some sanity checks, add some error checks, print
the __func__ in the error message too.

Patch from Andreas Eversberg
2009-05-01 04:59:55 +00:00
Harald Welte 4802b88890 fix printing of OML IP 2009-04-30 16:23:45 +00:00
Harald Welte 9de2bf884b fix missing \n at end of debug statement 2009-04-30 15:59:55 +00:00
Harald Welte 25de99170f add new 'ipaccess-config' program to set Unit ID and primary OML NVRAM parameters of ip.access BTS 2009-04-30 15:53:07 +00:00
Harald Welte 193fefc683 functionality to set nanoBTS NVRAM attributes and to restart BTS 2009-04-30 15:16:27 +00:00
Harald Welte 3788196026 more pretty-printing of ipaccess-find output 2009-04-30 15:15:37 +00:00
Harald Welte 3bfbb84021 Add some more ip.access specific OML attributes/messages. In this case it is
about configuring the primary OML link IP address in the NVRAM of the device.
2009-04-29 22:58:38 +00:00
Harald Welte a7cfa03cb2 bs11_config: print PLL 'work' and 'set' values during query 2009-04-29 22:33:02 +00:00
Harald Welte c50ea84804 add missing newline in debug statement for RS232 TX 2009-04-29 22:32:10 +00:00
Harald Welte d47a4beff8 activate subchannel muxer/demuxer on E1 TS 3 2009-04-29 16:21:34 +00:00