Harald Welte
b4a84e11b7
VTY: Unify Subscriber functions, remove SUBSCR_NODE
...
We previuosly had a 'subscriber node' under the 'configure node'
which is strange, since subscriber data is not part of the config file.
The relevant operations have now all been moved to the ENABLE node
of the VTY.
Furthermore, 'show subscriber' does no longer require the IMSI but
can also identify the subscriber by ID, TMSI or other identifier.
2010-05-27 10:44:58 +02:00
Harald Welte
71b822b986
Add ARFCN range check for GSM 850 band
...
This should make OpenBSC work with a nanoBTS in GSM 850 band.
2010-05-26 17:14:42 +02:00
Harald Welte
c31f480f08
[VTY] use new struct vty_app_info in libvty
2010-05-25 23:40:38 +02:00
Harald Welte
4b037e4117
Migrate VTY code to libosmovty
2010-05-25 23:40:38 +02:00
Harald Welte
4f1e81543a
[GPRS] NS: Always generate LOG_INFO message when we block NS-VC
2010-05-25 22:17:30 +02:00
Harald Welte
9ac340ef06
[GPRS] Use new 'encapsulation udp local-port 23000' in osmo_sgsn.cfg
2010-05-25 11:20:53 +02:00
Holger Hans Peter Freyther
fa848d4923
gprs: Cast the lh to uint_8* and make the other method non-const
...
We are assigning the header to non const methods... so make
the param non-const.
2010-05-23 21:43:57 +08:00
Holger Hans Peter Freyther
3a6fdcd717
gprs: make gprs_llc_hdr_dump return void.
2010-05-23 21:35:25 +08:00
Holger Hans Peter Freyther
4752e0c3de
gprs_llc.c: memset the llhp struct to be sure it is initialized.
2010-05-23 21:33:57 +08:00
Holger Hans Peter Freyther
d6ca49633c
gb_proxy_vty.c: Remove variable that appears to be unused
...
There is no other in_addr inside this file and it appears
that we don't use the 'ia' right now and will not use it
in the near future.
2010-05-23 21:25:41 +08:00
Holger Hans Peter Freyther
2fbf12dbeb
gprs_ns_frgre.h: Create the header and include it
2010-05-23 21:23:44 +08:00
Holger Hans Peter Freyther
cf4e9c8f07
gprs_ns.c: Make make_socket known to the compiler
2010-05-23 21:19:55 +08:00
Holger Hans Peter Freyther
83e0b3f544
gprs: Fix warnings on funny casts for the return statement
...
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-23 21:18:01 +08:00
Holger Hans Peter Freyther
9e28ecc325
gprs_bssgp.c: Return something from non void methods.
...
In one use the rc variable we are assigning to, in the
others return 0 even if we have a FIXME there.
2010-05-23 21:12:15 +08:00
Holger Hans Peter Freyther
2e22a5d85d
gprs_bssgp.c: Cast const of TLVP_VAL away.
...
Fix a compiler warning, we cast the const away at various
other parts in the code as well. We should consider removing
the const from the TLV struct..
2010-05-23 21:11:19 +08:00
Holger Hans Peter Freyther
cbac76ee0e
gsm_04_11: Include bsc_api.h for the dtap signature.
2010-05-23 21:05:18 +08:00
Holger Hans Peter Freyther
8f443710eb
bs11_config.c: Forward declare BTS init function
2010-05-23 21:05:01 +08:00
Holger Hans Peter Freyther
d92f9aff80
debug: Make GPRS params non-const to avoid compiler warning
...
Make log_set_nsvc_filter, log_set_bvc_filter take a non-const
parameter as we are going to assign it to a non-const pointer.
2010-05-23 20:59:55 +08:00
Holger Hans Peter Freyther
972c1f33b9
gprs: Disable strict aliasing as we are breaking the rules right now
2010-05-23 20:51:03 +08:00
Holger Hans Peter Freyther
aef49cc510
bsc_init: Do not use magic numbers for GSM 12.21 states.
2010-05-22 22:10:53 +08:00
Harald Welte
268bed07c0
[GPRS] Gb proxy VTY: Make sure all lines are aligned properly
2010-05-19 17:42:20 +02:00
Harald Welte
7570c21424
[GPRS] Gb Proxy: print only one line for every BVCI
2010-05-19 17:06:16 +02:00
Harald Welte
6624cae775
[GPRS] NS: Better formatting of VTY output
2010-05-19 17:02:57 +02:00
Harald Welte
94ac58e04e
[GPRS] NS: properly parse FR DLCI on Rx
2010-05-19 16:48:12 +02:00
Harald Welte
e72c61cc6f
[GPRS] NS: Never respond to STATUS with STATUS to prevent loops!
2010-05-19 16:01:39 +02:00
Harald Welte
ea92ac3777
[GPRS] NS: SOCK_RAW sockets always provide the full IPv4 header on receive
2010-05-19 15:53:22 +02:00
Harald Welte
ffe191c477
[GPRS] NS/FR/GRE rcvmsg case: msgb_free() in error case
2010-05-19 15:46:49 +02:00
Harald Welte
6efc176722
[GPRS] Make SGSN more verbose when startup fails
2010-05-19 15:46:31 +02:00
Harald Welte
e4860d7c48
[GPRS] NS: Make sure we allocate NS packet with headroom for FR/GRE
2010-05-19 15:38:10 +02:00
Harald Welte
3c2a88dfe4
[GPRS] NS: FR/GRE: Use AF_INET, correctly encode FR DLCI and GRE payload type
2010-05-19 15:37:34 +02:00
Harald Welte
ff3bde8b49
[GPRS] NS: VTY: Move all local ip/port bind values into 'ns' node
...
This removes the requirement for gb_proxy and sgsn to have duplicate
vty parsing code
2010-05-19 15:09:09 +02:00
Harald Welte
5540c4cbd3
[GPRS] Add Frame Relay in GRE encapsulation for NS
2010-05-19 14:38:50 +02:00
Harald Welte
3a318ab971
socket: Add support for GRE sockets
2010-05-19 14:11:38 +02:00
Harald Welte
7af4962e07
[SGSN] Gb Proxy: Simplify configuration
...
Almost all parameters about the SGSNs NS-VC can be specified in the NS
protocol node. All that needs to remain in the gbproxy config node
is "nsip sgsn nsei XXX".
2010-05-19 14:04:23 +02:00
Harald Welte
ab1d5626ac
[GPRS] SGSN: use GGSN IP address from config file, disable TMSI allocation
2010-05-18 19:58:38 +02:00
Harald Welte
119c2baaa6
[GPRS] SGSN: actually isert a ggsn context when we allocate it
2010-05-18 18:39:00 +02:00
Harald Welte
51537eef50
[GPRS] SGSN: Make sure libgtp timer doesn't segfault
2010-05-18 18:28:13 +02:00
Harald Welte
b4a3129993
[GPRS] SGSN: No need to calculate difference for libgtp timer
...
The libgtp return value is already a timespan value, not a
wallclock time.
2010-05-18 18:24:53 +02:00
Harald Welte
cd4dd4d7ff
[GPRS] fix numerous compiler warnings
2010-05-18 17:20:49 +02:00
Harald Welte
6463c0799c
[GPRS] SGSN: TMSI allocation
2010-05-18 17:04:55 +02:00
Harald Welte
4e38ac7a8a
[GPRS] SGSN: Correctly set upper 4 bits of PDP address to 0
...
It's really strange. In GTP those 4 bits are 1, in 04.08 they are
zero. Otherwise the IE is exactly the same :/
2010-05-18 14:51:18 +02:00
Harald Welte
269ae75321
[GPRS] SGSN: exit() if we cannot bind to the GTP address
2010-05-18 14:44:31 +02:00
Harald Welte
3c0b9b9c2a
[GPRS] SGSN: Make sure the PCO from GGSN are passed to the MS
2010-05-18 14:36:11 +02:00
Harald Welte
77289c202f
[GPRS] SGSN: properly delete a PDP context after receiving PDP CTX DEACT REQ
2010-05-18 14:32:29 +02:00
Harald Welte
55e0df7c43
[GPRS] SGSN: Don't use GGSN-provided QoS as the MS doesn't like it
2010-05-18 13:20:08 +02:00
Harald Welte
322a5ee954
[GPRS] SGSN: ensure we mark libgtp filedescriptors as READ
2010-05-18 13:13:11 +02:00
Harald Welte
d764c064bb
[GPRS] LLC: Fix logic to detect unknown TLLI/SAPI
2010-05-18 12:45:08 +02:00
Harald Welte
6ffbaab90d
[GPRS] SGSN: properly initialzie pdp_list head of mm ctx
2010-05-18 12:44:45 +02:00
Harald Welte
b61f403dd3
[GPRS] LLC: print human-readable LLC command type
2010-05-18 12:31:50 +02:00
Harald Welte
2e918a87eb
[GPRS] LLC: Add VTY interface for LLC
2010-05-18 12:22:12 +02:00
Harald Welte
68b99a4a08
[GPRS] fix null pointer dereference in GMM
2010-05-18 12:05:42 +02:00
Harald Welte
803bd5ceb2
[GPRS] BSSG: Fix Vty printing of BVC
2010-05-18 12:00:55 +02:00
Harald Welte
b3911a071b
[GPRS] BSSGP: Use correct values for SIGNALLING and PTM BVCI
2010-05-18 11:57:08 +02:00
Harald Welte
a7c262ad96
[GPRS] Make sure libsgsn.a is only built when libgtp is available
2010-05-18 11:00:52 +02:00
Harald Welte
8acd88f369
[GPRS] SGSN: Include rate counters in MM Context
2010-05-18 10:57:45 +02:00
Harald Welte
6abf94e420
[GPRS] Properly connect GPRS SM with LIBGTP for PDP context activation
...
* store LLC SAPI as part of PDP ctx
* store NSEI + BVCI as part of MM ctx
* export gsm48_tx_gsm_act_pdp_acc() and call it from sgsn_libgtp.c
* create and use gsm48_tx_gsm_act_pdp_rej for error cases
* print SAPI as part of VTY show pdp
2010-05-18 10:35:06 +02:00
Harald Welte
d2a9ed2285
[GPRS] SGSN: Activate BSSGP VTY functions
2010-05-18 08:02:36 +02:00
Harald Welte
03800ba868
[GPRS] Build osmo-sgsn only if libgtp is available
2010-05-18 00:20:21 +02:00
Harald Welte
d9a55f67ac
[GPRS] BSSGP: Add VTY for configuration and inpection
...
This also includes log filtering based on NSEI/BVCI tuple
2010-05-17 23:41:43 +02:00
Harald Welte
b1b290862a
[GPRS] BSSGP: Introduce packet/byte counters
2010-05-17 23:30:01 +02:00
Harald Welte
5fa2f44fa0
[GPRS] VTY: Add BSSGP node
2010-05-17 23:20:56 +02:00
Harald Welte
5c90e5cfc6
[GPRS] BSSGP: expose more internal structures / API
2010-05-17 23:02:42 +02:00
Harald Welte
ada466f2a7
[GPRS] BSSGP: Rename bssgp_bts_ctx to bssgp_bvc_ctx
...
The Context really is about a BVC (BSSGP Virtual Connection). In
the case we operate BSSGP on the SGSN side, this corresponds to
a link to a BTS.
2010-05-17 22:59:29 +02:00
Harald Welte
d193cb327a
[GPRS] More work on a real SGSN
2010-05-17 22:58:03 +02:00
Harald Welte
8fc1a46f28
[SGSN] remove the mmctx->sgsn pointer
...
We never want to support multiple sgsn's within one process, so
there is no point in passing them around all the time.
2010-05-17 00:53:10 +02:00
Harald Welte
2720e7310d
[GPRS] Initial untested support for libgtp
...
libgtp of the OpenGGSN project will allow us to speak the GTPv0/v1
protocol of the interface between SGSN and GGSN.
This commit includes code for the main libgtp integration (file
descriptor, select loop, timer) as well as code to encode/send
a CREATE PDP CONTEXT request.
2010-05-17 00:44:57 +02:00
Harald Welte
7363e92cd3
[GPRS] NS: Receiving a STATUS message is a NOTICEable event
2010-05-16 23:17:16 +02:00
Harald Welte
5bc61dc384
VTY: separate VTY logging commands and OpenBSC node exit code
2010-05-16 22:02:16 +02:00
Harald Welte
7d9f2230a9
VTY: rename vty_interface.c to bsc_vty.c
...
This should reflect the fact that it contains BSC-specific VTY
commands.
2010-05-16 21:49:35 +02:00
Harald Welte
4f10c25ea8
VTY: Move BSC specific openbsc_vty_print_statistics() to vty_interface.c
2010-05-16 21:47:13 +02:00
Harald Welte
dcccb1818d
VTY: decouple telnet_interface from 'struct gsmnet'
...
We want the VTY and telnet code to be independent from the BSC
application(s). As a side note, we also like to eliminate static
global variables for 'struct gsm_network' all over the code.
As such, telnet_init() is now passed along a "private" pointer,
which getst stored in telnet_connection.priv. This telnet_connection
is then stored in vty->priv, which in turn gets dereferenced if
anyone needs a reference to 'struct gsm_network' from the BSC vty
code.
Also:
* vty_init() now calls cmd_init()
* the ugliness that telnet_init() calls back into the application by means of
bsc_vty_init() function has been removed.
* telnet_init() now returns any errors, so the main program can exit
e.g. if the port is already in use.
2010-05-16 20:52:23 +02:00
Harald Welte
88907a2f92
telnet: cosmetic coding style changes
2010-05-16 19:30:28 +02:00
Harald Welte
9a87ad923d
telnet: remove dead code
2010-05-16 19:29:51 +02:00
Harald Welte
20474ad029
VTY: use argv_concat() instead of vty_argv_to_buffer + buffer_getstr()
2010-05-16 19:28:32 +02:00
Harald Welte
08e2bfa920
VTY: remove accidentially enabled TELNET option debugging
2010-05-16 19:26:51 +02:00
Harald Welte
1353f961ef
VTY: pass program name, version and copyright to vty_init()
...
This enables us to make the VTY completely independent of any
compile-time program-specific information, i.e. one step closer
to using VTY as a shared library from multiple programs.
2010-05-16 19:20:24 +02:00
Harald Welte
3071d6aa7d
VTY: remove dead code
2010-05-16 17:24:03 +02:00
Harald Welte
00fd8b0e03
vty: use install_node_ve() instead of separate ENABLE and VIEW node installs
2010-05-16 17:09:08 +02:00
Harald Welte
9564715c24
VTY: Context-sensitive help for logging related commands
2010-05-16 00:00:04 +02:00
Harald Welte
8be8c8fec9
[GPRS] NS: Allow filtering of log messages by NSVC / NSEI
2010-05-15 23:52:02 +02:00
Harald Welte
3bac9a84ce
VTY / logging: Fix subscriber context / imsi filtering
...
The debug.c code had its own private CTX_ definitions that were
not synchronized with debug.h:BSC_CTX_* definitions.
2010-05-15 23:50:56 +02:00
Harald Welte
52613a114a
[GPRS] NS: VTY: Don't nsvc_delete() on 'no nse...'
...
Rather than deleting the NSE from memory, we simply mark it as non-persistent.
This makes sure that there are no invalid references (e.g. from gbprox_peer)
to the gprs_nsvc structure, but at the same time ensures it will no longer
be stored as part of writing the config file.
2010-05-15 23:06:26 +02:00
Harald Welte
55c91e411e
[GPRS] NS: Introduce command to display a single NSE
2010-05-15 23:04:03 +02:00
Harald Welte
ff56d61dc9
[GPRS] NS: Always start NS-ALIVE procedure after RESET
...
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-15 23:02:24 +02:00
Holger Hans Peter Freyther
b7b9c1d4d3
gsm48: Add a generic MI from classmark+mi extraction.
...
This is a generic MI extraction for the MI if it is followed
after a classmark. For the Phase1 Phones the classmark2 is not
four bytes but it might be different. This code can be used
by the CM Service Request handling as well.
2010-05-16 01:51:30 +08:00
Holger Hans Peter Freyther
f6903dee89
gsm48: Add size checks to the paging response mi parsing.
...
We go from no size checks to some content checking. We should
refactor the whole classmark2 + mi parsing that is used throughout
the code into one place with proper size checking. This is the
start and requires a new libosmocore as well.
2010-05-16 01:51:14 +08:00
Holger Hans Peter Freyther
5d65806472
gsm48: Typo fix.
2010-05-15 05:34:09 +08:00
Harald Welte
2832606e5c
VTY: More interactive help
2010-05-14 20:05:17 +02:00
Harald Welte
9ef9108025
[GPRS] NS: Add 'nsvc nsei ... (block|unblock|reset)' command to VTY
2010-05-14 19:36:59 +02:00
Harald Welte
54f7424b78
[VTY] Introduce "end" command that works from any level in config
...
Using "end" you can always return to the "enable" level, and from
there the "show" commands are available. So no more need for
exit/exit/exit/exit/disable.
2010-05-14 19:11:04 +02:00
Harald Welte
93e90207f9
[BSC] ARFCN 0 is legal in E-GSM
2010-05-14 19:00:52 +02:00
Harald Welte
62ab20c5dd
[VTY] Remove OpenBSC specific node-exit handling from src/vty
...
The idea is to move the VTY code into libosmocore at some point,
and for that we need to eliminate OpenBSC specifics from it
2010-05-14 18:59:17 +02:00
Harald Welte
197dea95ff
VTY: Introduce common code to add 'description' to objects like BTS
...
There is now an option to add a human-readable description to objects
that are configured in the VTY.
2010-05-14 18:05:41 +02:00
Harald Welte
d94d6a02d5
DB: don't use reserved "index" word in SQL table field name
2010-05-14 17:38:47 +02:00
Harald Welte
1ccbf44d79
[GPRS] gb_proxy: Initiate RESET procedure on persistent NS-VC at startup
...
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-14 11:53:08 +00:00
Harald Welte
768f2871a5
[GPRS] Gb_proxy: Support common command line arguments
...
This allows us to use a user-specified configuration file
2010-05-14 11:22:33 +00:00
Harald Welte
2b36ae1a3d
[GPRS] BSSGP: Refuse blocking of signalling BVC; Ignore traffic on blocked BVC
2010-05-13 21:45:23 +02:00
Harald Welte
3a1bece69c
[GPRS] BSSGP: Make implementation more robust
...
We now actually are much more in line with what the specification
says. We track the blocked/unblocked state, we don't accept
signalling messages on PTP functional entities (and vice versa),
and we don't simply create a BVC context with messages other than
BVC-RESET.
2010-05-13 21:29:11 +02:00
Harald Welte
1b170d1145
[GPRS] LLC: Start using different log levels
2010-05-13 21:29:11 +02:00
Harald Welte
c6ecafe60c
[GPRS] LLC: Use DLLC instead of DGPRS
2010-05-13 21:29:11 +02:00