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@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