Update - I've created a better tunnel via ssh port forwarding (why did
I ever bother with netcat?), to bypass the connection problem:
root@rpi-cardem-2:~# ssh -L 9999:remsim-server:9999 pi@remsim-server
Starting the client now shows other repeating messages I need to figure out:
root@rpi-cardem-2:~# osmo-remsim-client-st2 --server-ip remsim-server
--server-port 9998 --client-id 1 --client-slot 1 --usb-vendor 1d50
--usb-product 60e3 --usb-config 1 --usb-interface 0 --usb-path "1-1.4"
DRSPRO INFO ../rspro_client_fsm.c:307
RSPRO_CLIENT(server){REESTABLISH}: Creating TCP connection to server
at remsim-server:9998
DLINP NOTICE simtrace2_api.c:271 [0] <=
osmo_st2_cardem_request_config(features=00000001)
DLINP NOTICE input/ipa.c:141 remsim-server:9998 connection done
DRSPRO NOTICE ../rspro_client_fsm.c:127
RSPRO_CLIENT(server){REESTABLISH}: RSPRO link to remsim-server:9998 UP
DRSPRO INFO ../rspro_client_fsm.c:307
RSPRO_CLIENT(bankd){REESTABLISH}: Creating TCP connection to server at
127.0.0.1:9999
DLINP NOTICE input/ipa.c:141 127.0.0.1:9999 connection done
DRSPRO NOTICE ../rspro_client_fsm.c:127
RSPRO_CLIENT(bankd){REESTABLISH}: RSPRO link to 127.0.0.1:9999 UP
DRSPRO ERROR ../rspro_client_fsm.c:297
RSPRO_CLIENT(bankd){REESTABLISH}: Event SRVC_E_KA_TERMINATED not
permitted
DRSPRO INFO ../rspro_client_fsm.c:302
RSPRO_CLIENT(bankd){REESTABLISH}: Destroying existing connection to
server
DRSPRO INFO ../rspro_client_fsm.c:307
RSPRO_CLIENT(bankd){REESTABLISH}: Creating TCP connection to server at
127.0.0.1:9999
DLINP NOTICE input/ipa.c:141 127.0.0.1:9999 connection done
DRSPRO NOTICE ../rspro_client_fsm.c:127
RSPRO_CLIENT(bankd){REESTABLISH}: RSPRO link to 127.0.0.1:9999 UP
DRSPRO ERROR ../rspro_client_fsm.c:297
RSPRO_CLIENT(bankd){REESTABLISH}: Event SRVC_E_KA_TERMINATED not
permitted
The bankd daemon says:
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 526 DBANKDW INFO
bankd_main.c:442 [003 CONN_CLIENT_MAPPED] Changing state to ACCEPTING
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_main.c:955 [000 ACCEPTING] Accepted connection from
127.0.0.1:57908
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_main.c:442 [000 ACCEPTING] Changing state to CONN_WAIT_ID
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_main.c:655 [000 CONN_WAIT_ID] Rx RSPRO connectClientReq(T=0,
N='rpi-cardem-2', SW='remsim-client', VER='1.0.0')
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_main.c:442 [000 CONN_WAIT_ID] Changing state to CONN_CLIENT
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_main.c:625 [000 CONN_CLIENT] slotmap found: C(1:1) -> B(1:1)
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_main.c:450 [000 CONN_CLIENT] Changing state to
CONN_CLIENT_MAPPED (timeout=10)
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_pcsc.c:261 [000 CONN_CLIENT_MAPPED] Attempting to open PC/SC
context
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_pcsc.c:264 [000 CONN_CLIENT_MAPPED] SCardEstablishContext: OK
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_pcsc.c:215 [000 CONN_CLIENT_MAPPED] Attempting to find card/slot
using regex 'SCM Microsystems Inc. SCR 3310 [CCID Interface]
(53312144266274) 00 00'
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_main.c:967 [000 CONN_CLIENT_MAPPED] Error -2 occurred: Cleaning
up state
Jul 08 10:27:00 rpi-cardem-1 osmo-remsim-bankd[405]: 522 DBANKDW INFO
bankd_main.c:442 [000 CONN_CLIENT_MAPPED] Changing state to ACCEPTING
Does this mean that it doesn't find the reader? Though the name is the
one reported by pcsc_scan:
root@rpi-cardem-1:~# pcsc_scan | head
Using reader plug'n play mechanism
Scanning present readers...
0: SCM Microsystems Inc. SCR 3310 [CCID Interface] (53312144266274) 00 00
Sat Jul 8 10:30:44 2023
Reader 0: SCM Microsystems Inc. SCR 3310 [CCID Interface]
(53312144266274) 00 00
Event number: 0
Card state: Card inserted,
ATR: 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 13 67 98 07 02 10 01 01 01 54
ATR: 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 13 67 98 07 02 10 01 01 01 54
Or is this a consequence of my port forwarding attempt?
Thanks!
On Sat, Jul 8, 2023 at 12:12 PM Adrian Popa <adrian.popa.gh(a)gmail.com> wrote:
Hello everyone!
I'm new to simtrace and I'm trying to set up a test with a Simtrace2
board connected to a RPI (which I'll call the client from now on) and
a different RPI with an attached card reader (which I'll call the
server).
The server runs osmo-remsim-bankd and osmo-remsim-server (installed
from your debian repo). The bankd server has its configuration csv
file filled with the correct reader information. The
osmo-remsim-server runs on the same machine and has a mapping
configured via the python api tool to map client 1 to bank 1, like so:
root@rpi-cardem-1:~# python3 /etc/osmocom/osmo-remsim-apitool -a
/clients: {'clients': []}
/banks: {'banks': [{'peer': 'B1', 'state':
'CONNECTED_BANKD',
'component_id': {'type_': 'remsimBankd', 'name':
'fixme-name',
'software': 'remsim-bankd', 'swVersion': '1.0.0'},
'bankId': 1,
'numberOfSlots': 5}]}
/slotmaps: {'slotmaps': [{'bank': {'bankId': 1, 'slotNr':
1},
'client': {'clientId': 1, 'slotNr': 1}, 'state':
'ACTIVE'}]}
The client runs osmo-remsim-client-st2 like this:
root@rpi-cardem-2:~# osmo-remsim-client-st2 --server-ip remsim-server
--server-port 9998 --client-id 1 --client-slot 1 --usb-vendor 1d50
--usb-product 60e3 --usb-config 1 --usb-interface 0 --usb-path "1-1.4"
However, based on the logs, it tries to contact the bankd server at
127.0.0.1:9999 instead of remsim-server:9999:
DRSPRO INFO ../rspro_client_fsm.c:307
RSPRO_CLIENT(server){REESTABLISH}: Creating TCP connection to server
at remsim-server:9998
DLINP NOTICE simtrace2_api.c:271 [0] <=
osmo_st2_cardem_request_config(features=00000001)
DLINP NOTICE input/ipa.c:141 remsim-server:9998 connection done
DRSPRO NOTICE ../rspro_client_fsm.c:127
RSPRO_CLIENT(server){REESTABLISH}: RSPRO link to remsim-server:9998 UP
DRSPRO INFO ../rspro_client_fsm.c:307
RSPRO_CLIENT(bankd){REESTABLISH}: Creating TCP connection to server at
127.0.0.1:9999
DRSPRO NOTICE ../rspro_client_fsm.c:127
RSPRO_CLIENT(bankd){REESTABLISH}: RSPRO link to 127.0.0.1:9999 DOWN
The bankd server listens on 0.0.0.0 on the server side:
root@rpi-cardem-1:~# netstat -tpan | grep osmo | grep LISTEN
tcp 0 0 0.0.0.0:9997 0.0.0.0:*
LISTEN 409/osmo-remsim-ser
tcp 0 0 0.0.0.0:9998 0.0.0.0:*
LISTEN 409/osmo-remsim-ser
tcp 0 0 0.0.0.0:9999 0.0.0.0:*
LISTEN 405/osmo-remsim-ban
My question is - how is osmo-remsim-client-st2 getting the IP address
of the bankd server? What did I do wrong?
I've tried a few tricks to redirect traffic from 127.0.0.1:9999 to
remsim-server:9999, but so far have failed. This is what I've tried as
a proxy, but the connection seems to get garbled because netcat
expects LF terminated strings:
nc -l 127.0.0.1 9999 | nc remsim-server 9999
Thanks for the help
Cheers,
Adrian