Commit Graph

31 Commits

Author SHA1 Message Date
Harald Welte 52cc7db6ed remsim_client_fsm: Handle re-connect timeout and initial connection failure
Change-Id: Id229459a8fa484276c0ca0413356c16930269c36
2018-09-24 11:51:51 +02:00
Harald Welte e72e57383d bankd: Add hack for hard-coded slotmap
As we don't yet have any software that would dynamically install
slot mappings into bankd, let's add a bunch of them as compiled-in
defaults during bankd_init().   This must of course be removed once
the dynamic slot mapping configuration from remsim-server exists.

Change-Id: I04d6ed68c9b9bfb559a41c705884cce4394ea926
2018-09-23 19:31:55 +02:00
Harald Welte 796a7492c7 bankd: Add code to handle TPDUs in rx and tx direction
Change-Id: Icb35ad28939392e75a17b732834d9d570452164f
2018-09-23 19:31:28 +02:00
Harald Welte 57593f0ce9 bankd_main: Missing state transition to BW_ST_CONN_CLIENT_MAPPED_CARD
After we opened the card, we need to transition in this state.

Change-Id: I2de62045bae6313620e81b24d883cec9e4b6017f
2018-09-23 19:30:31 +02:00
Harald Welte 48865c284b bankd_main: Fix SCardConnect(): Needs dwActiveProtocol output param
Change-Id: I4d07d75966afbf4af7ac592ecdef61074a329186
2018-09-23 19:30:07 +02:00
Harald Welte 45c948cc10 bankd_pcsc: Add CSV based mapping of bank-id/slot-nr to PC/SC reader name
In the PC/SC world, each slot is associated with a string name. In the
bankd for PC/SC readers, we need to establish a mapping which
bank_id/slot_nr maps to which given string name.  We use a minimalistic
CSV file for defining those mappings.  The file is read only once at
bankd startup time.

Change-Id: Ifd2caab670625e2e3fbc57b966dce2f43b690417
2018-09-23 19:29:51 +02:00
Harald Welte 1266952242 bankd_slotmap: Fix debug statements
Change-Id: Ia383c851f16967893e3ed50acd18199d848bd1b3
2018-09-23 19:26:09 +02:00
Harald Welte 5d16b1c865 rspro_util: Add functions to generate TDPU transfer messages
Change-Id: I35daf740724e4914b09e3c7eaaac4f933116f48d
2018-09-23 19:25:46 +02:00
Harald Welte 84ba234c2c More progress on code of the server_conn_fsm
Change-Id: Ibad10383fe9c4ab9e6b94382114747c21dae6c31
2018-08-24 22:20:20 +02:00
Harald Welte f29e0d0c26 client: bankd_send_rspro -> ipa_client_conn_send_rspro
Change-Id: Ib481401f8b201719fe1edf76a6d73359947fda15
2018-08-24 21:42:22 +02:00
Harald Welte 24173fbba7 client: Introduce FSMs for managing connections to server + bankd
Change-Id: I705d2dde6d7285bbb1be328181c6d09bccaf26fb
2018-08-24 20:37:28 +02:00
Harald Welte 2ff0ab98d2 Add initial remsim-client skeleton
Doesn't rally do much but to connect to bankd and send a
ConnectClientReq to it.

Change-Id: Ia67011ca690d90b7b670eb85dd0bc507d6c96d49
2018-08-17 22:10:49 +02:00
Harald Welte af61473729 bankd: Resolve slot mapping after client identifies itself.
If mapping cannot be resolved, transition to new
BW_ST_CONN_CLIENT_WAIT_MAP state

Change-Id: I27b4bc301a784712808881a40636e9299816fe72
2018-08-17 22:10:05 +02:00
Harald Welte a2b23c3c50 rspro_util: Print error message in case of encoder errror
Change-Id: Ia2eabd86dd143d5241756f406aa5388cf49d3ba1
2018-08-17 22:09:06 +02:00
Harald Welte 6b8d4f82de rspro_util.c: Fix encoding to msgb. Use tailroom, not length!
Change-Id: I955b76499b1370a9453a50204ccee0e9e8769468
2018-08-17 22:06:24 +02:00
Harald Welte 57555aa60c rspro_util: Add ASN_ALLOC_COPY macro and add clientSlot to ConnectClientReq
Change-Id: I0bc2ba7b7e7787fc5ef9d730af35767b00137513
2018-08-17 22:05:06 +02:00
Harald Welte d5c5c0b790 rspro_util: DER encoder returns size in bytes, no need to divide by 8
Change-Id: I559afe17981a77024b6d14058f89c5f103767939
2018-08-17 22:04:01 +02:00
Harald Welte 137c4402d9 rspro_util: Add header file
Change-Id: I2f66531008943fa6bdc3c286aee2afd254384018
2018-08-17 21:26:49 +02:00
Harald Welte 371d026c6b RSPRO: Use ClientSlot in ConnectClientReq, ConfigClientReq
Change-Id: I33b44009eea338627b0ccbe69b9e4114e4fb85d8
2018-08-16 15:30:41 +02:00
Harald Welte 415e8f66ce bankd: Re-initialize client.peer_addr when recycling the thread
Change-Id: I56ed45bda4323326c42283f160f4b99a4138add1
2018-08-16 14:47:38 +02:00
Harald Welte ceb3e68fab bankd: Include worker state and file/line in LOGW output
Change-Id: I00974d7f567ec1d3142727d455549c76ec974a03
2018-08-16 14:47:11 +02:00
Harald Welte d6dfb8c045 bankd: use getnameinfo() to print client IP/port on connect
Change-Id: Ia721f993b4e4c0addf429fbd6179d7d379c0ccd0
2018-08-16 14:46:53 +02:00
Harald Welte fe3df992fe RSPRO.asn: Add optional ClientId field to ConnectClientReq
This is required when the client connects to the bankd, so the bankd
can figure out who the client is.

Change-Id: Ie87b775d2996a62128e2506ad4b0e48e2f704561
2018-08-16 14:45:49 +02:00
Harald Welte f0614dfd33 RSPRO.asn: Improve comments/description
Change-Id: I66e62b69a32382703f809160997825bd4405c5b2
2018-08-16 14:45:23 +02:00
Harald Welte cce2aadbb3 bankd: Add client.id to bankd_worker
Change-Id: I1461f626b579d92621df21b53bbbe8062fb97d72
2018-08-16 14:44:37 +02:00
Harald Welte 7f684a0021 bankd: Don't consume 100% CPU in main thread
Change-Id: I4586a4c00fcdd4540f84caa005d2f116a63aa59c
2018-08-16 14:43:50 +02:00
Harald Welte 12534e776d bankd: Actually create + listen to a socket
Change-Id: I3b6a2b8bd74afafe9575ab00a7f3738a8fac0861
2018-08-15 23:37:29 +02:00
Harald Welte 8d85829821 bankd: Log worker number; Add formal state + state transition function
Change-Id: Ib18e3ad79657e9423a1c1ac75438abcd2e4fdbbd
2018-08-15 23:36:46 +02:00
Harald Welte 77911b0091 Add initial remsim-bankd skeleton
This is not a complete program yet, but a rough initial skeleton with
the key data structures in place, as well as the thread / locking model
in place.

Change-Id: I5ad5a1a4918b8eacdaeb7e709ff05dc056346752
2018-08-15 08:56:31 +02:00
Harald Welte e224912d4a Add README.md file contents
Change-Id: Ia4a17d870432619192cec59de94200004d983351
2018-08-15 08:56:31 +02:00
Harald Welte 3aa901da56 initial checkin of osmo-remsim
This adds some initial code, particularly the ASN.1 definition of the
RSPRO protocol, related makefile to build it using ffasn1c, and our
usual autoconf infrastructure to build it.

Change-Id: Ibaa993b59e9a65a0242b0f42b27d9cd29f8e1878
2018-08-15 08:54:50 +02:00