aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/gprs_ns.h
AgeCommit message (Collapse)AuthorFilesLines
2010-06-14GPRS: Increase the NS msg size to 2048Holger Hans Peter Freyther1-1/+1
According to the GPRS NS spec the maximum framesize is 1600 octets for FrameRelay, it can be bigger if configured to be so. Make it 2048 octets to have some space available...
2010-05-23gprs: Fix warnings on funny casts for the return statementHolger Hans Peter Freyther1-1/+1
Change gprs_nsvc_reset to return void instead of a int as the gb_proxy.c currently ignores the reutnr value anyway. Change the caller inside gprs_ns to return the newly allocated nsvc instead of the return of gprs_nsvc_reset.
2010-05-19[GPRS] NS: Make sure we allocate NS packet with headroom for FR/GREHarald Welte1-1/+5
2010-05-19[GPRS] NS: VTY: Move all local ip/port bind values into 'ns' nodeHarald Welte1-2/+6
This removes the requirement for gb_proxy and sgsn to have duplicate vty parsing code
2010-05-19[GPRS] Add Frame Relay in GRE encapsulation for NSHarald Welte1-17/+22
2010-05-15[GPRS] NS: Always start NS-ALIVE procedure after RESETHarald Welte1-0/+1
So far, we only started the ALIVE procedure on RESET-ACK if the remote end was the SGSN. This resulted in the BSS->Proxy connections only being tested for alive-status from the BSS side, but not from our side. Also: export nsvc_by_nsvci() function as a public API function.
2010-05-14[GPRS] gb_proxy: Initiate RESET procedure on persistent NS-VC at startupHarald Welte1-0/+3
Some BSS that connect to the proxy do not continue to perform the RESET procedure after a timeout. In order to resurrect them, we simply start a RESET procedure.
2010-05-13[GPRS] NS: Fix segfault when receiving message from unknown NS-VCHarald Welte1-0/+3
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'
2010-05-13[GPRS] NS: Start to use rate_ctr_group code from libosmocoreHarald Welte1-0/+6
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.
2010-05-12NS: Make all timers configurable from VTYHarald Welte1-1/+21
2010-05-12NS: Add support for persistent NS-VC configurationHarald Welte1-1/+6
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.
2010-05-11[gprs] NS: Add signals in the event of BLOCK/UNBLOCK/RESETHarald Welte1-0/+3
The signals will be sent upon reception of NS-BLOCK/UNBLOCK/RESET PDUs We also export functions to generate/send BLOCK/UNBLOCK and RESET.
2010-05-04[gprs] NS: improved timer handling for RESETHarald Welte1-2/+2
2010-05-04[gprs] NS: replace nsvc->timer_is_tns_alive with nsvc->timer_modeHarald Welte1-2/+10
This will allow to use the timer in more than 2 modes
2010-05-04[gprs] Use stdint.h types (uintXX_t instead of u_intXX_t)Harald Welte1-7/+9
libosmocore already uses them, it's time (at least for new code) in openbsc to do the same.
2010-05-04[gprs] fully integrate VTY configuration into Gb proxyHarald Welte1-11/+38
The Gb-proxy is now fully configured by config file / VTY
2010-05-04GPRS: Introduce a GPRS Gb ProxyHarald Welte1-1/+38
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: remove msgb->nsvc pointer and replace it with NSEI and BVCIHarald Welte1-2/+1
According to TS 08.16, the BSSGP layer needs to specify NSEI and BVCI when executing the NS UNITDATA REQUEST primitive of the underlying NS layer. Rather than passing around a pointer to the 'struct gprs_nsvc', we now have NSEI and BVCI as members of 'struct obsc_msgb_cb' and set them when BSSGP hands a message down to NS. NS then does a lookup of the 'gprs_nsvc' based on the NSEI parameter.
2010-05-04GPRS: Modularize the NS implementationHarald Welte1-9/+53
* 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-1/+1
2010-05-04Create new 'gprs-sgsn' branch on top of 'gprs-conf'Harald Welte1-0/+61
This branch contains the partial SGSN/GGSN implementation that was originally developed as part of the gprs branch.