aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/input/ipaccess.c
AgeCommit message (Collapse)AuthorFilesLines
2010-10-14ipaccess: Make sure the unitid is null terminatedHolger Hans Peter Freyther1-2/+9
The nanoBTS is sending null terminated strings, make sure they are really null terminated.
2010-10-14ipaccess: Verify that the data fits in the package.Holger Hans Peter Freyther1-1/+8
There is something wrong with the code, the length is here uint8_t but when we generate a IDGET we put it as 16bit data.
2010-10-14ipaccess: memset the tlv_parsed structure before parsingHolger Hans Peter Freyther1-0/+2
Make sure the tlv_parsed structure is initialized properly, otherwise we might detect a tag that should not be present.
2010-05-19[GPRS] Add Frame Relay in GRE encapsulation for NSHarald Welte1-5/+3
2010-05-14Forward declare make_socket.Holger Hans Peter Freyther1-0/+3
2010-05-04GPRS: Introduce a GPRS Gb ProxyHarald Welte1-52/+0
The ida of the Gb proxy is to aggregate Gb links with a number of BSS and then present all the BSSGP-VC's together inside one NS-VC to the actual SGSN. The code is not yet expected to be complete.
2010-05-04GPRS: Modularize the NS implementationHarald Welte1-78/+2
* move UDP listener code for NSIP from input/ipaccess.c and into gprs_ns.c * add PDU type, IE and CAUSE values for later IP based 3GPP TS 48.016 * support multiple NS-VCs and their lookup based on NSVC and sockaddr_in * maintain the remote_state (blocked/alive) for each NSVC * introduce the concept of GPRS_NS instances, move all global vars to instance * remove hardcoded calls to gprs_bssgp_rcvmsg() and replace it by callback WARNING: This is not finished code. While it will compile, it will not work yet, as BSSGP needs to be converted to properly indicate the NSVC to which it needs to send data.
2010-05-04GPRS: remove hard-coded IP address for NSIP responses from SGSN->BTSHarald Welte1-20/+10
2010-05-04Create new 'gprs-sgsn' branch on top of 'gprs-conf'Harald Welte1-9/+103
This branch contains the partial SGSN/GGSN implementation that was originally developed as part of the gprs branch.
2010-04-15[ipa] Fix the reporting of link down...Holger Hans Peter Freyther1-2/+2
Now bsc_init.c is able to handle the link down messages.
2010-04-15[ipa] Handle losing the RSL/OML connection..Holger Hans Peter Freyther1-26/+121
This is addressing multiple issues regarding the loss of the OML/RSL link to the BTS. 1.) When we lose the OML link, close down all RSL connections on all TRXs (only tested with one TRX) and free the e1inp_line allocated for the OML connection. 2.) When we lose the RSL link on any TRX and we know to which lines this connection belongs, we will close down the OML connection as we have a problem to just reactivate one RSL link. 3.) When we lose the RSL link on any TRX and we do not know where it belongs to we will free the bfd we have allocated in the rsl listen/accept method and we properly close the socket (i could not test this one properly). This is made under the assumption the BTS has not responded to the ID request. 4.) When we already have a bts->oml_link we will throw it away and use the new link (it should not happen) and the same applies to the rsl link.
2010-04-11Revert "ipa: Reduce the throttling of the IPA msges"Holger Hans Peter Freyther1-1/+3
Reducing the throttling to this value created a regression with bringing up RSL on the nanoBTS 900. We do seem to have a bug/issue in the bsc_init code and might send a command too early without this longer wait period and then the state transition does not happen. For now it is agreed that reverting is the best thing to do. Debugged-by: Sylvain Munaut <246tnt@gmail.com> This reverts commit f5284ae1cf8babc1567b33f469e20a66a73fcd9e.
2010-04-07[ipa] When including MGCP our messages might be bigger than 300 byteHolger Hans Peter Freyther1-1/+1
The length field of the IPA header allows to have 16bit numbers and I just ran into the 300 byte limit with MGCP messages. Make it three times the size and see how long this is going to be enough.
2010-03-29[misc] Remove whitespace from the end of the line.Holger Hans Peter Freyther1-1/+1
2010-03-24ipa: Fix the previous patch and initialize the fds to -1Holger Hans Peter Freyther1-0/+6
The code in 354ef81d8062510765b7280023b3f4ef98d0613a checked for fd >= 0 but on startup the struct is memset to 0 so this test is true. Initialize the fds to -1 to make the code work and be able to handle all ranges of the fd.
2010-03-24ipa: Handle corrupt incoming messages without crashingHolger Hans Peter Freyther1-6/+14
Attempt to read the three byte IPA header. If we read 0 then the socket can be closed otherwise we need to read three bytes, if we don't we do have a failure. After having parsed the header we need to evaluate the length, if the length is bigger than would fit into our buffer we will ignore that and print an error. This is fixing a crash when the BTS is crashing...
2010-03-24ipa: Reduce the throttling of the IPA msgesHolger Hans Peter Freyther1-1/+1
This code used to be a sleep, it was changed to be a timer by Andreas but this timer does not seem to have any use. When doing the sw load this timer is increasing the upload time dramatically, reduce it to make it work faster.
2010-03-24ipa: Use two defines instead of magic numbersHolger Hans Peter Freyther1-8/+11
We spearate OML/RSL by putting a magic number into the priv_nr. Use a define instead of ordinary integers.
2010-03-24ipaccess: Handle the case of replacing RSL connectionsHolger Hans Peter Freyther1-0/+7
Fix a infinite loop when establishing a new RSL connection and the BSC is identifying itself with a unit id of an already established RSL connection. The infinite loops happens because we are corrupting the the linuxlist inside the bsc_fd when registering the bfd twice. Due the lack of proper authentication favor the new RSL connection as the real one and close the previous one.
2010-02-20split 'libosmocore' from openbsc codebaseHarald Welte1-4/+4
This library is intended to collect all generic/common funcitionality of all Osmocom.org projects, including OpenBSC but also OsmocomBB The library currently includes the following modules: bitvec, comp128, gsm_utils, msgb, select, signal, statistics, talloc, timer, tlv_parse, linuxlist msgb allocation error debugging had to be temporarily disabled as it depends on 'debug.c' functionality which at the moment remains in OpenBSC
2010-02-19ipaccess.c: Fix some resource leaks in error conditions.Holger Hans Peter Freyther1-0/+13
* Close the socket when the bind is failing. * Close the socket when the listen is failing. * Close the socket then the bsc_register_fd is failing. * Return an error when the socket call is not returning a socket.
2010-02-09[ipaccess] Make the IPA version of LTV public.Holger Hans Peter Freyther1-2/+2
2010-02-07[ipa] Make sending of ID REQ public...Holger Hans Peter Freyther1-1/+6
Make sending of the ID Request message public. We are going to use this in the BSC NAT code to ask for querying the BSC.
2010-02-07[ipaccess] Create a method to send the ID ACK messagesHolger Hans Peter Freyther1-1/+7
2009-12-29ipaccess input: Print BTS number that has disappearedHarald Welte (local)1-4/+7
2009-12-24properly check for EAGAIN in recv() callsHarald Welte1-2/+2
If recv() has no more messages on a non-blocking socket, errno will be EAGAIN, not the return value!
2009-12-24if we recv() from an abis-ip socket, don't consider -EAGAIN an errorHarald Welte1-1/+2
2009-12-24Merge remote branch 'origin/master'Harald Welte1-13/+18
2009-12-23input/ipaccess: Differentiate between LOGL_ERROR and DEBUGHarald Welte1-13/+18
also: make sure we properly reset the OML/RSL UP flags on a dead socket.
2009-12-23introduce #defines for ip.access RSL and OML UDP portsHarald Welte1-2/+2
2009-12-21ipaccess: Fix two minor bugs regarding multi-TRX setupHarald Welte1-2/+3
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.
2009-12-16ip.access: Keep OML/RSL up/down state per-bts for multi-BTS setupsHarald Welte1-7/+6
2009-11-17[ipaccess] Fix spelling in the commentHolger Hans Peter Freyther1-1/+1
2009-10-29ip.access: Header has a 16bit length in network byte orderSylvain Munaut1-5/+5
This is confirmed by looking at the source of their dissector. The length can go up to 273 bytes apparently (again, according to the source of their dissector).
2009-10-29[misc] Use talloc_zero instead of talloc and later memsetHolger Hans Peter Freyther1-6/+3
2009-10-27input/ipaccess.c: clang says ret might be uninitializedHolger Hans Peter Freyther1-1/+1
and it appears to be right that for the "default" case ret will not be assigned and we return ret.
2009-10-21[ipaccess] revert commit 9bd7bc1b4c4a3ba42da46931df650837c1a7e889Harald Welte1-1/+5
Commit 9bd7bc1b4c4a3ba42da46931df650837c1a7e889 caused the RSL initialization to happen too early, resulting in the BTS bootstrapping but missing [some of?] the system information types.
2009-10-20input/ipaccess: remove one more static variableHarald Welte1-5/+1
2009-10-20ip.access: Support multi-TRX / RSL stream IDHarald Welte1-16/+14
In order to support multi-TRX configurations, we need to be able to cope with multiple RSL streams (each with their own stream identifier) inside one ip.access TCP connection. Since this is very similar to using the TEI on a E1 line, we simply recycle the logic and data fields that are used for the TEI.
2009-10-08use tx delay timer instead of usleep() in ip.access input driverAndreas Eversberg1-9/+24
this fixes the delay of audio caused by stalling of the openbsc process. the use of 'usleep(100000)' for slowing down transmission to nanoBTS is replaced by the tx-delay timer. i did this on bs11 code, so i did it the same way. it actually queues frames for transmission not nanoBTS. on transmission a timer is started and when this timer expires, the next frame in the queue is transmitted (timer restarted) until the queue is empty.
2009-10-01input/ipaccess: Fix segv caused by use of uninitialized varSylvain Munaut1-1/+1
This is a regression coming from the recent split of the handle_ts1_read method in two. Signed-off-by: Sylvain Munaut <tnt@246tNt.com> Signed-off-by: Holger Hans Peter Freyther <zecke@selfish.org>
2009-09-30[ipaccess] Prepare to reuse parts of the code for the A-linkHolger Hans Peter Freyther1-39/+90
For the MSC<->BSC connection we are going to use the same header as used from BTS<->BSC but we are not having an E1-Link, a gsm network or a gsm_bts available and can not use this part of the code.
2009-08-10ipaccess.c: Make the compiler happy...Holger Hans Peter Freyther1-1/+1
The compiler thinks the variables might not be initialized, we know it is wrong... but just make it happy.
2009-08-10misc: Remove some obviously unused and unneeded variables..Holger Hans Peter Freyther1-1/+0
2009-08-10misc: Fix warnings about returning with value...Holger Hans Peter Freyther1-0/+2
return rc in these cases.
2009-08-08the actual config file code (not just config files)Harald Welte1-2/+2
this was missing from commit a08a9acdb6bff0ee4fdf0f58b78b6525017a1f9f
2009-06-26use named variant when allocating msgb'sHarald Welte1-1/+1
when we generate a talloc report (SIGUSR1), we can now see which system allocated a given msgb, this helps memory leak debugging
2009-06-22fix various talloc / dynamic bts/trx related bugsHarald Welte1-4/+12
Prior to this patch, nanobts was not able to operate after recent changes
2009-06-21switch to dynamically allocated BTS and TRX data structuresHarald Welte1-2/+2
This makes it much easier to do run-time configuration using the vty interface.
2009-06-20introduce talloc all over OpenBSCHarald Welte1-3/+4