Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
This is the first step towards supporting actual A3/A8 authentication.
|
|
|
|
This prevented NM related log messages from showing up at stderr
|
|
also: make sure we properly reset the OML/RSL UP flags on a dead socket.
|
|
|
|
This proxy allows us to restart OpenBSC while the BTS's are kept
running with their CCCH/BCCH alive. This is very useful to
make sure the phones don't roam to other networks while restarting
OpenBSC.
The proxy also intrduces UDP sockets for injecting UDP packets
into the A-bis data stream.
|
|
|
|
Using okteta to display the size in bigendian and
then selecting from the start to the " SDP" I get
the same number...
|
|
|
|
So far I have not much idea about the format. It is starting with
the magic byte and the header is spanning until the next occurence
of the " SDP" marker.
|
|
The magic " SDP" is occuring twice in the file. The first time
seems to be the file header and the second time it is with the
payload. We will need to parse this somehow...
|
|
* The two version strings are not in an easy to parse header
and from my trace it appears like the whole file is sent
to the BTS. So just open the firmware file..
|
|
|
|
Change the counters_store_db function to be a generic for_each
function taking a function pointer and data. Use that in bsc_hack
to store it to the DB.
This is removing the DB requirement and will allow to handle
the counter values in different ways without making the counter
list public.
I verified that the syncing is still taking place.
|
|
Do not expose DB functionality on this level
|
|
|
|
|
|
|
|
This is the new logging architecture, including
* support for multiuple logging targets like stderr and vty
* log levels in addition to categories/subsystems
* filtering based on imsi, i.e. only see events for one subscriber
* dynamically change log level for each category for each vty
|
|
|
|
|
|
|
|
This has the advantage that counters can be added all over the code
very easily, while having only one routine that stores all of the
current counter values to the database. The counters are synced
every 60 seconds, providing relatively fine grained statistics
about the network usage as time passes by.
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
Tweaking theses can be useful especially tx-integer that influence
both the spread of rach attemps and the delay between two attemps.
Looking up GSM 04.08 3.3.1.1.2 & 10.5.2.29 can help determine good
values. The default are choosed with a wide spacing between attemps
(tx integer = 9 -> T=12 & S=217 (non-combined CCCH/SDCCH) or 115 (for
combined CCCH/SDCCH)). This alleviates the problem of responding to
several RACH attempts by a same MS, allocating several RF channels when
only 1 is needed.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
The previous implementation had some shortcomings:
- If the MIN ID given was not the exact id of the first unsent SMS,
it would try to submit the same sms several time until id++ finally
made id go to the next one.
- If a subscriber had several SMS pending it would try to submit
them individually (only to get rejected because a paging for that
subscriber was already in progress)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
|
|
This is just the load at one given instant. We definitely also want to see
some averages and record the measurements in a database later.
|
|
Provide a small individual documentation string.
|
|
Handover is a high level decision, it can span multiple BSCs
and belongs mostly into the MSC domain.
|
|
For the time being RSL has to know about Layer4 and upwards
and is using the RTP socket class....
|
|
Move the function over to the _utils side as handover
measurement is compiled into libbsc and we don't want
to end up with linking errors.
|
|
the statistics will give us some idea about the network load and
performance.
|
|
|
|
TP_VPF_ENHANCED - not in TP_VPF_ABSOLUTE
|
|
values that might change at runtime are moved to set_system_infos()
which we might now also call at runtime to update the BTS with
changes in the SI
|
|
it's sufficient if we keep the state of cell barring in one place
|
|
we need to set newbfd->priv_nr to 2+trx_id, rather than keeping
it '2' all the time, as it is used to look-up the e1i_ts when
we receive a packet. A constant '2' would always match to TRX 0.
we also need to keep one separate bit for each TRX state in order
to properly generate the EVT_E1_TEI_UP event for trx > 0.
|
|
|
|
Possible crash fixes by preventing accessing the
array out of bounds.
|
|
* Use >= in this case as we start counting the trx from 0
* This is fixing a problem with multi trx config
|
|
|
|
This implements the handover algorithm (and associated parameters)
as described in Chapter 8 of the book "Performance Enhancements in
a Frequency |Hopping GSM Network" by Thomas Toftegard Nielsen and Jeroen
Wigard.
The parameters such as averaging windows are configured in struct
gsm_network. We keep some state to trakc up to 10 neighbors as
they are being reported from the MS.
This has so far only been tested in a network with two BTS that
have each other as neighbor. Networks with morge neighbors might
encounter bugs.
|
|
After receiving the HANDOVER COMPLETE on the new channel, we mark the
old channel as INACTIVE and try to release it ASAP.
|
|
This allows us to block packets that we have received after the channel
is no longer being used. This is visible during handover, where we still
receive a measurement report after the MS has switched to the new channel.
This leftover measurement report then attempts to trigger another handover,
which si bogus and will fail - and thus only consumes resources.
With the new LCHAN_S_ACTIVE state, we can check for this when processing
the measurement report.
|
|
This provides two functions: get_meas_rep_avg() to obtain the sliding
window average of one particular field, and meas_rep_n_out_of_m_be()
to check if at least N out of M measurments are >= BE.
|
|
|
|
If a RF channel is assigned but no response is ever heard from
the phone, we will receive a CONNECTION FAIL from the BTS,
triggering a RF release freeing the channel. Then sometime later,
T3101 will expire as well and free the channel again ...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
- Need to use sms.id for the ORDER BY since 'subscriber' also has 'id'
- Need to add the join clause between 'SMS' and 'subscriber'
- Add a LIMIT 1 (probably no impact for the db size we're dealing with
here, but with large DB and mysql/postgresql this can help the planner)
- (fix a wrong comment in passing ...)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|