Commit Graph

6972 Commits

Author SHA1 Message Date
Harald Welte 39a1b7193c set up a static TRAU mux mapping between on-air TS1 and TS2 2009-02-10 17:17:09 +00:00
Holger Freyther 57dd7bf626 prettier debug prints in mISDN driver 2009-02-10 01:04:22 +00:00
Holger Freyther 392209cbb5 [paging] Introduce a variable containing the free paging slots
Start with a large number of available slots. It is guranteed
that we will - at some point - get a paging load and will properly
update the counter and keep it updated.
2009-02-10 00:06:19 +00:00
Holger Freyther 1fd34141c2 [paging] Cleanup page -> paging in function names 2009-02-09 23:42:03 +00:00
Holger Freyther 9c564b85e6 introduce lookup of subscribers based on their extension number 2009-02-09 23:39:20 +00:00
Holger Freyther cbc7b06534 some more primitive names for improved debug readability 2009-02-09 23:10:48 +00:00
Holger Freyther 59639e81e1 * always use bts->c0 as msg->trx for OML messages 2009-02-09 23:09:55 +00:00
Holger Freyther fb3f5190b4 * correctly initialize link->tei and link->sapi
* fix debug printf
2009-02-09 23:09:15 +00:00
Holger Freyther 3630eab572 fix segfault when trying to dequeue list head as list element 2009-02-09 21:05:56 +00:00
Harald Welte ce6efc295f remove old misdn driver; the code is now using e1_input.c in combination
with src/input/misdn.c
2009-02-09 18:14:24 +00:00
Harald Welte 1fa60c8ab0 * add trau_mux implementation to relay from one incoming TRAU
channel to another one (simple voice call switching)
* add a way more generic E1 input layer, abstracting out the misdn
  low-level interface. This also adds infrastructure for multiple TRX
  in one BTS, as well as multiple BTS on one E1 link
* add a E1 subchannel multiplexer for sending multiple 16kbit sub-channels
  one one 64kBps E1 channel
* add TRAU IDLE frame generation
* terminate bsc_hack in case there is a E1 / mISDN init error
* introduce 'e1_config.c' file with static configuration of our
  E1 setup (which TRX/BTS is configured for which TEI/SAPI/E1). This should
  later become a config file rather than a compiled C file.

WARNING: all this compiles but is not tested yet.  Expect fix-up committs over
the next hours or so
2009-02-09 18:13:26 +00:00
Harald Welte 0b4c34e3ca fix compiler warning about undeclared function by adding include file 2009-02-09 17:54:43 +00:00
Harald Welte 9383de3010 * remove excessive debug output during software load
* fix compiler warning about unused variable
2009-02-09 17:53:49 +00:00
Harald Welte e79769b926 make sure certain functions are per TRX, not per BTS, such as
* rsl_chan_activate()
* rsl_bcch_info()
* rsl_sacch_filling()
2009-02-07 00:48:17 +00:00
Holger Freyther 33ba752057 [paging] Move the code to send the command into a separate function
Mostly cosmetic and in preparation for proper page load indicator
handling.
2009-02-06 22:33:25 +00:00
Holger Freyther 72b250b779 [tests] Fix the tests... link again 2009-02-06 22:16:52 +00:00
Holger Freyther 7b2ef7ff4e [dist] Fix make distcheck by adding the new header files 2009-02-06 22:08:17 +00:00
Holger Freyther e64a7a3c3b [rr] Send a Channel Release before deactivating the channel
After auto releasing a channel the next paging request will
not be immediately answered. The hypothesis was that we do
not release the channel properly. Implementing Channel Release
of GSM 04.08 should have fixed it, but it didn't. According
to the wireshark dissectors the message is correct though.

- Add the RR cause values to gsm_04_08.
- Implement the Channel Release message
- Invoke the release channel function before deallocating
  the lchan.
2009-02-06 21:55:37 +00:00
Holger Freyther ceb59b72c2 [paging] Move the paging state into struct gsm_bts
There is a 1:1 relationship between gsm_bts and the paging
operation. Move the paging state into the gsm_bts which is
simplfying the code a lot. This was hinted by LaF0rge.

(I'm not happy with the names of the structs)
2009-02-06 18:54:00 +00:00
Holger Freyther 3d949240fe [paging] Use paging_request_remove to update last_request and free memory
Update the last_request when stopping the paging operation and also
free the associated memory of the request.
2009-02-06 18:08:18 +00:00
Holger Freyther 31338a16a5 [bs11-config] Really force the software upload
When we get a NM_MT_LOAD_END_NACK and we are supposed to
force the load we will just send data. This was already
done with NM_MT_LOAD_INIT_NACK.
2009-02-06 17:43:50 +00:00
Harald Welte a7dbe49a19 BS11 logon message type 2009-02-06 16:44:37 +00:00
Harald Welte 97ed1e7d43 * implement some simplistic OML EVENT STATE CHANGE REPORT parsing
* make sure we don't call a user_cb() function if it is NULL
2009-02-06 13:38:02 +00:00
Harald Welte 47150fbd20 stop paging a particular subscriber after we have received a PAGING RESPONSE 2009-02-06 12:52:47 +00:00
Harald Welte 763da00e97 add new routine to stop paging 2009-02-06 12:52:14 +00:00
Harald Welte 91b5b0d41d add some initial simplistic TLV parser 2009-02-06 12:51:39 +00:00
Harald Welte 0bbb8b2fd2 increase CCCH LOAD indication threshold to 50% to remove lots of noise 2009-02-06 12:49:11 +00:00
Harald Welte 6ddd1683b5 introduce new "DEBUGPC" macro for continuing on the same line without prefix of file/line/time 2009-02-06 12:38:29 +00:00
Harald Welte b60fa59276 add DMI and DMIB debug= commandline option parsing 2009-02-06 12:02:53 +00:00
Harald Welte 2d35ae6d3b implement parsing of PAGING RESPONSE 2009-02-06 12:02:13 +00:00
Harald Welte 1cbfaf508a * introduce a new '--restart' parameter to reboot BTS
* unconditionally create TRX1 objects
* wait for '3 Normal' before issuing disconnect
* MBCCU0/MBCCU1 state were accidentially switched
2009-02-05 19:30:22 +00:00
Harald Welte b8427970e2 introduce abis_nm_bs11_restart() function 2009-02-05 19:27:17 +00:00
Holger Freyther 152a14718a [paging] Use the number of different paging subchannels...
In our setup (1xCCCH combined, BS_AG_BLKS_RES=0,
BS_PA_MFRMS=0x3 -> 5) we have MAX(1,3-0) * 5 paging
sub-channels. Using this 15 I was able to successfully page
my phone/IMSI (934%15 -> 4).

My confusion is coming from the terms used for paging throughout
the documentation. GSM05.02 6.5.2 talks about "N = number of
paging blocks 'available' on one CCCH = (number of paging blocks
'available' in a 51-multiframe on one CCCH)xBS_PA_MFRMS" which
is already misguiding  and GSM04.08 is talking about number of
different paging subchannels on the CCCH and is providing a
formula.

I deduct that N == number of different paging subchannels on the CCCH
as of GSM04.08 and will simply test this with different IMSIs and
see if I can page them as well.
2009-02-04 13:38:26 +00:00
Holger Freyther 3aa8d6c46d [paging] This is paging my phone but it looks completely wrong...
- The paging block calculation is wrong but I have a hard time finding
  the right information. The table of 05.02 (Table 5 of 9) looks good
  but my phone is not happy with that group...
2009-02-04 02:14:45 +00:00
Holger Freyther 2976c40cd1 [paging] Allow call the paging related helper functions
they alread had external linkage
2009-02-04 01:09:20 +00:00
Holger Freyther 3b72a890c2 [paging] Implement the three Control Channel Descriptor methods...
This comes from GSM 05.02 and GSM 04.08
2009-02-04 00:31:39 +00:00
Holger Freyther 1adb4ff002 [paging] Keep a copy of the Control Channel Description in the bts struct
- Initialize Control Channel Description of SI3 
- Patch the table
- Setting ATT now is easy
- Paging can now extract all required information... to determine
  the right paging group.
2009-02-04 00:04:52 +00:00
Holger Freyther b01554493f [rsl] Prepare to properly handle the paging command add defines to the RSL
For finding the right paging group one needs to know various
settings that are broadcasted as part of system settings 3. This
includes the CCCH Conf, the BS_PA_MFRMS, BS_AG_BLKS_RES.... The
next step will be to move away from the hardcoded System Settings 3
so one can calculate the paging group...
2009-02-03 23:24:04 +00:00
Holger Freyther d4ec5287c2 [paging] some minor cleanups. put the current request into a temporary 2009-02-03 23:18:46 +00:00
Holger Freyther df892da697 [paging] Cosmetic changes on the timer handling and max requests 2009-02-03 21:05:49 +00:00
Holger Freyther f07768915d [telnet] use SO_REUSEADDR on the telnet socket 2009-02-03 20:49:51 +00:00
Holger Freyther 8c563cf4f9 [rsl] Decode RACH Load as well
Print the common field and ignore the Supplementary Information.
Initialize the fields to 0xffffffff in case the payload is malformed
2009-02-03 20:08:51 +00:00
Harald Welte bf5e8df424 cosmetic fixes / more comments 2009-02-03 12:59:45 +00:00
Harald Welte dc55db9d95 cosmetic fixes 2009-02-03 12:58:59 +00:00
Harald Welte 8f5e239388 cosmetic/coding style fixes 2009-02-03 12:57:37 +00:00
Harald Welte 6f14691c61 make bs11_config status lines shorter 2009-02-03 02:05:28 +00:00
Harald Welte ea280446bb add rudimentary code to debug-print the CCCH LOAD INDICATION 2009-02-02 22:29:56 +00:00
Harald Welte 5083b0b1f1 * fix warnings while compiling abis_nm.c 2009-02-02 19:20:52 +00:00
Harald Welte 5f6f149983 add limits.h for PATH_MAX 2009-02-02 14:50:29 +00:00
Harald Welte 7ed1a64d9d * exit program if we cannot set up the serial port
* leave the program if ctrl+c is pressed three times even without logoff from BTS
2009-02-02 14:45:49 +00:00