Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [GPRS] BSSGP: Elaborate more on FIXMEs | Harald Welte | 2010-05-13 | 1 | -8/+10 |
| | | | | And fix mistake regarding FLUSH-LL / FLUSH-LL-ACK direction | ||||
* | [GPRS] BSSGP: add function declaration | Harald Welte | 2010-05-13 | 1 | -1/+6 |
| | |||||
* | [GPRS] NS: Remove 'unknown_nsvc' from list of NS-VCs | Harald Welte | 2010-05-13 | 1 | -0/+3 |
| | |||||
* | [GPRS] NS: Fix segfault when receiving message from unknown NS-VC | Harald Welte | 2010-05-13 | 3 | -8/+22 |
| | | | | | | | | | | | | In the previous code we used a static fake_nsvc structure in case we needed to send a message to an unknown NSVC for which we don't have a real 'struct nsvc'. However, since we now have a rate_ctr_group hanging off the nsvc, the fake structure didn't have that. So now we keep a nsi->unknown_nsvc around to be used whenever we need a nsvc but don't have a real one. The gprs_ns_vty.c code explicitly does not list that NSVC in 'show ns' | ||||
* | [GPRS] NS: remove debug statement about l2len | Harald Welte | 2010-05-13 | 1 | -1/+0 |
| | |||||
* | [GPRS] NS: more rate counters for BLOCK / DEAD count | Harald Welte | 2010-05-13 | 1 | -8/+25 |
| | |||||
* | [GPRS] NS: Show statistics on VTY only if requested | Harald Welte | 2010-05-13 | 1 | -4/+19 |
| | |||||
* | [GPRS] NS: properly assign msgb->l2h to count outgoing bytes correctly | Harald Welte | 2010-05-13 | 1 | -1/+2 |
| | |||||
* | [GPRS] NS: Fix wrong counter use and remove debug statement | Harald Welte | 2010-05-13 | 1 | -4/+2 |
| | |||||
* | [GPRS] NS: Start to use rate_ctr_group code from libosmocore | Harald Welte | 2010-05-13 | 3 | -243/+320 |
| | | | | | | | | | Every NS-VC now has a set of counters for incoming and outgoing number of packets and bytes. We also split the VTY part of the gprs_ns.c implementation into gprs_ns_vty.c to make sure the protocol can actually be used without the VTY code being present. | ||||
* | GPRS: We have to do the msgb_free() in NS not Gb Proxy | Harald Welte | 2010-05-12 | 1 | -1/+5 |
| | | | | | | | As only NS-UNITDATA messages are ever passed into the Gb Proxy, we need to do the msgb_free() at a much higher point in the calling stack, i.e. inside the NS protocol layer. This means it is now the same logic as in OpenBSC itself. | ||||
* | NS: Make all timers configurable from VTY | Harald Welte | 2010-05-12 | 2 | -13/+79 |
| | |||||
* | use new install_element_ve() | Harald Welte | 2010-05-12 | 1 | -2/+1 |
| | |||||
* | Make sure all commands of SHOW_NODE to ENABLE_NODE | Harald Welte | 2010-05-12 | 1 | -0/+1 |
| | |||||
* | NS: Add support for persistent NS-VC configuration | Harald Welte | 2010-05-12 | 2 | -10/+222 |
| | | | | | | | | | With persistent NS-VC configuration (configured through VTY), we can respond properly to BSS with a somewhat strange NS implementation Such as the BSplus. It enables us to respond with a proper NS-RESET (including NSVCI/NSEI) when receiving a NS-ALIVE or other PDU for a BLOCKED/DEAD NS-VC after our end of the connection is rebooted. | ||||
* | NS: Send UNBLOCK signal when we get UNBLOCK_ACK from peer | Harald Welte | 2010-05-12 | 1 | -0/+1 |
| | |||||
* | Display NSEI instead of NSVCI for all debug msgs | Harald Welte | 2010-05-12 | 1 | -4/+4 |
| | |||||
* | NS: Send STATUS or RESET when receiving NS_ALIVE on unknown NSVC | Harald Welte | 2010-05-12 | 1 | -5/+15 |
| | |||||
* | NS / GB Proxy: Add Signal in case Tns-Alive expires too often | Harald Welte | 2010-05-12 | 1 | -0/+1 |
| | | | | The Gb Proxy can then restart the RESET procedure. | ||||
* | NS: Debug NS timer expiry | Harald Welte | 2010-05-12 | 1 | -2/+16 |
| | |||||
* | NS: Add more LOG_DEBGU messages and retransmit NS-ALIVE | Harald Welte | 2010-05-12 | 1 | -4/+23 |
| | |||||
* | NS: More INFO messages about what we actually transmit | Harald Welte | 2010-05-12 | 1 | -0/+13 |
| | |||||
* | NS: don't memcmp sockaddr_in but compare ip and port individually | Harald Welte | 2010-05-12 | 1 | -4/+5 |
| | | | | this seems to work more portably (ppc/32bit big endian) | ||||
* | [gprs] NS: more state transitions, error reporting via Tx STATUS PDU | Harald Welte | 2010-05-12 | 1 | -16/+64 |
| | |||||
* | [gprs] NS: elevate events from LOGL_DEBUG to LOGL_INFO | Harald Welte | 2010-05-12 | 1 | -13/+14 |
| | |||||
* | [gprs] NS: update the remote peer IP addr/port on NS RESET | Harald Welte | 2010-05-11 | 1 | -1/+2 |
| | |||||
* | [gprs] NS: include port number in log statement | Harald Welte | 2010-05-11 | 1 | -2/+3 |
| | |||||
* | [gprs] gb-proxy: We might receive a NS-RESET for a NS-VC that we already know | Harald Welte | 2010-05-11 | 1 | -4/+21 |
| | | | | | In this case, don't blindly allocate a new NS-VC but rather use the NSEI to lookup the 'struct gprs_nsvc' for it. | ||||
* | [gprs] NS: Make sure we include "Rx" in the log statement for NS RESET | Harald Welte | 2010-05-11 | 1 | -1/+5 |
| | |||||
* | [gprs] NS: cleanup / fix compiler warnings | Harald Welte | 2010-05-11 | 1 | -3/+5 |
| | |||||
* | [gprs] BSSGP: cosmetic cleanup | Harald Welte | 2010-05-11 | 1 | -9/+2 |
| | |||||
* | [gprs] gb_proxy: Send proper BSSGP STATUS msg in error case | Harald Welte | 2010-05-11 | 3 | -82/+131 |
| | | | | | | | | | | | In order to reuse the existing bssgp_tx_* functions without pulling in the dependencies of gprs_bssgp.c, we have to move those functions to gprs_bssgp_util.c Furthermore, we can remove gbprox_nsi and replace it with bssgp_nsi, and we can do proper processing of BVC-RESET messages coming from the SGSN on the signalling BVC. In that case we need to send RESET messages to all the BSS. | ||||
* | [gprs] NS: Add signals in the event of BLOCK/UNBLOCK/RESET | Harald Welte | 2010-05-11 | 2 | -4/+76 |
| | | | | | | The signals will be sent upon reception of NS-BLOCK/UNBLOCK/RESET PDUs We also export functions to generate/send BLOCK/UNBLOCK and RESET. | ||||
* | [gprs] Add new 'NS' and 'BSSGP' logging categories | Harald Welte | 2010-05-11 | 2 | -44/+44 |
| | |||||
* | [gprs] Move all GPRS related code to src/gprs subdirectory | Harald Welte | 2010-05-04 | 2 | -0/+0 |
| | |||||
* | [gprs] NS: If we are the BSS side, UNBLOCK the connection after it is ALIVE | Harald Welte | 2010-05-04 | 1 | -0/+9 |
| | | | | | After RESET / RESET-ACK and ALIVE / ALIVE-ACK, the connection needs to be unblocked from the BSS side to the SGSN. | ||||
* | [gprs] NS: Start ALIVE Procedure after receiving RESET_ACK | Harald Welte | 2010-05-04 | 1 | -4/+7 |
| | |||||
* | [gprs] NS: improved timer handling for RESET | Harald Welte | 2010-05-04 | 2 | -17/+80 |
| | |||||
* | [gprs] NS: replace nsvc->timer_is_tns_alive with nsvc->timer_mode | Harald Welte | 2010-05-04 | 2 | -13/+24 |
| | | | | This will allow to use the timer in more than 2 modes | ||||
* | [gprs] Unify log messages of the NS protocol implementation | Harald Welte | 2010-05-04 | 1 | -22/+28 |
| | |||||
* | [gprs] correctly calculate the length of the BSSGP PDUs | Harald Welte | 2010-05-04 | 1 | -5/+5 |
| | |||||
* | [gprs] pass BSSGP UL-UNITDATA Cell ID up into GMM layer | Harald Welte | 2010-05-04 | 2 | -5/+7 |
| | | | | | | | | | 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. | ||||
* | [gprs] Use stdint.h types (uintXX_t instead of u_intXX_t) | Harald Welte | 2010-05-04 | 4 | -49/+53 |
| | | | | | libosmocore already uses them, it's time (at least for new code) in openbsc to do the same. | ||||
* | [gprs] SGSN: Expect all Identifiers to be stored at highest level | Harald Welte | 2010-05-04 | 3 | -22/+44 |
| | | | | | | | | | | | 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) | ||||
* | [gprs] Ensure msgb->l3h points to Layer3 (04.08) | Harald Welte | 2010-05-04 | 2 | -7/+10 |
| | | | | | | | | | | 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 | ||||
* | [gprs] convert ns_cause_str to value_string | Harald Welte | 2010-05-04 | 1 | -20/+15 |
| | |||||
* | [gprs] BSSGP: convert cause strings to value_string | Harald Welte | 2010-05-04 | 1 | -28/+29 |
| | |||||
* | [gprs] introduce BSSGP concept of BTS contextx | Harald Welte | 2010-05-04 | 1 | -23/+110 |
| | | | | | A BTS context represents the mapping betewen (RA-ID, Cell-ID) and (BVCI, NSEI) as well as the per-BVC local state. | ||||
* | [gprs] Build the SGSN stand-alone and not as part of bsc_hack | Harald Welte | 2010-05-04 | 1 | -5/+23 |
| | | | | | | | | | | | | | | Instead of continuing to add more and more functionality to the bsc_hack binary, we should have the new SGSN code run as a separate executable. After this commit we now build a 'osmo_sgsn' executable, using its own osmo_sgsn.cfg config file. However, the SGSN is not yet functional, mainly due to the fact that the BSSGP and GMM code are written with the assumption that there is a msgb->trx->bts and the according 'sturct gsm_bts' data model around - which clearly is no longer the case outside of bsc_hack. | ||||
* | [gprs] fully integrate VTY configuration into Gb proxy | Harald Welte | 2010-05-04 | 2 | -36/+42 |
| | | | | The Gb-proxy is now fully configured by config file / VTY |