rename executables to include osmo- name prefix

Change-Id: I4498a004519499cc4b897a68c7f33efe29a63425
This commit is contained in:
Harald Welte 2019-04-03 09:18:44 +02:00
parent 798acd00dc
commit 51cfec03b1
6 changed files with 104 additions and 100 deletions

View File

@ -36,51 +36,51 @@ the Osmocom project, including the Osmocom SIMtrace project.
Development of osmo-remsim software was funded by GSMK and sysmocom.
=== remsim-server
=== osmo-remsim-server
The remsim-server is the central element of the osmo-remsim
The `osmo-remsim-server` is the central element of the osmo-remsim
architecture. All other elements connect to it. It maintains the
inventory of other network elements, as well as the list of
slot-mappings, i.e. the relationship between each given physical card
in a bank and each card emulator attached to a phone/modem.
The tasks of remsim-server include:
The tasks of `osmo-remsim-server` include:
* accepting incoming TCP control connections from remsim-client and
remsim-bankd instances
* accepting incoming TCP control connections from `osmo-remsim-client` and
`osmo-remsim-bankd` instances
* providing a RESTful JSON interface for external application logic to
=== remsim-client
=== osmo-remsim-client
The remsim-client software is co-located next to a cellular phone/modem.
The `osmo-remsim-client` software is co-located next to a cellular phone/modem.
It typically runs on an [embedded] computer next to the phone/modem.
The tasks of remsim-client include:
The tasks of `osmo-remsim-client` include:
* interaction over USB with a device supported by the 'SIMtrace2 cardem'
firmware, which provides the physical interface to the phone/modem SIM
interface
* establishing a TCP connection with the remsim-server, in order to
* establishing a TCP connection with the `osmo-remsim-server`, in order to
enable the server to issue control commands
* under control of remsim-server, establishing a TCP connection to a
remsim-bankd in order to connect a card physically located at the
* under control of `osmo-remsim-server`, establishing a TCP connection to a
`osmo-remsim-bankd` in order to connect a card physically located at the
bankd.
remsim-client supports at this point only one phone/modem. If you have
`osmo-remsim-client` supports at this point only one phone/modem. If you have
multiple phones/modems at one location, you can simply run multiple
instances of remsim-client on the same system, one for each phone/modem.
instances of `osmo-remsim-client` on the same system, one for each phone/modem.
=== remsim-bankd
=== osmo-remsim-bankd
The remsim-bankd software is co-located next to a bank of SIM cards.
The `osmo-remsim-bankd` software is co-located next to a bank of SIM cards.
The tasks of remsim-bankd include:
The tasks of `osmo-remsim-bankd` include:
* interaction with the actual card reader hardware. At this point, only
PC/SC based readers are supported, with 1 to 255 slots per reader.
* establishing a TCP connection with the remsim-server, in order to
* establishing a TCP connection with the `osmo-remsim-server`, in order to
enable the server to issue control commands
* running a TCP server where TCP connections from remsim-client
* running a TCP server where TCP connections from `osmo-remsim-client`
instances are accepted and handled.

View File

@ -1,18 +1,18 @@
== remsim-bankd
== osmo-remsim-bankd
The `remsim-bankd` (SIM Bank Daemon) manages one given SIM bank. The
initial implementation supports a PC/SC driver to expose any PC/SC
The `osmo-remsim-bankd` (SIM Bank Daemon) manages one given SIM bank.
The initial implementation supports a PC/SC driver to expose any PC/SC
compatible card readers as SIM bank.
`remsim-bankd` initially connects via a RSPRO control connection to
`remsim-server` at startup, and will in turn receive a set of initial
[client,slot]:[bankd,slot] mappings. These mappings determine which
slot on the client (corresponding to a modem) is mapped to which slot on
the SIM bank. Mappings can be updated by `remsim-server` at any given
point in time.
`osmo-remsim-bankd` initially connects via a RSPRO control connection to
`osmo-remsim-server` at startup, and will in turn receive a set of
initial [client,slot]:[bankd,slot] mappings. These mappings determine
which slot on the client (corresponding to a modem) is mapped to which
slot on the SIM bank. Mappings can be updated by `osmo-remsim-server`
at any given point in time.
`remsim-bankd` implements a RSPRO server, where it listens to connections
from `remsim-clients`.
`osmo-remsim-bankd` implements a RSPRO server, where it listens to
connections from `osmo-remsim-clients`.
As PC/SC only offers a blocking API, there is one thread per PC/SC slot.
This thread will perform blocking I/O on the socket towards the client,
@ -32,10 +32,10 @@ reader, and that mapping is only established at a later point after the
client has identified itself. The advantage is that the entire bankd
can live without any non-blocking I/O.
The main thread handles the connection to `remsim-server`, where it can
also use non-blocking I/O. However, re-connection would be required, to
avoid stalling all banks/cards in the event of a connection loss to the
server.
The main thread handles the connection to `osmo-remsim-server`, where it
can also use non-blocking I/O. However, re-connection would be
required, to avoid stalling all banks/cards in the event of a connection
loss to the server.
worker threads have the following states:
* INIT (just started)
@ -56,39 +56,40 @@ approach seems to make more sense.
=== Running
`remsim-bankd` currently has the following command-line options:
`osmo-remsim-bankd` currently has the following command-line options:
==== SYNOPSIS
*remsim-bankd* [-h] [-i A.B.C.D] [-p <1-65535>] [-b <1-65535>] [-n <1-65535>] [-I A.B.C.D] [-P <1-65535> ]
*osmo-remsim-bankd* [-h] [-i A.B.C.D] [-p <1-65535>] [-b <1-65535>] [-n <1-65535>] [-I A.B.C.D] [-P <1-65535> ]
==== OPTIONS
*-h, --help*::
Print a short help message about the supported options
*-i, --server-host A.B.C.D*::
Specify the remote IP address/hostname of the remsim-server to which this bankd
shall establish its RSPRO control connection
Specify the remote IP address/hostname of the `osmo-remsim-server` to
which this bankd shall establish its RSPRO control connection
*-p, --server-port <1-65535>*::
Specify the remote TCP port number of the remsim-server to whihc this bankd
shall establish its RSPRO control connection
Specify the remote TCP port number of the `osmo-remsim-server` to which
this bankd shall establish its RSPRO control connection
*-b, --bank-id <1-65535>*::
Specify the numeric bank identifier of the SIM bank this bankd instance
operates. Must be unique among all banks connecting to the same remsim-server.
Specify the numeric bank identifier of the SIM bank this bankd
instance operates. Must be unique among all banks connecting to the
same `osmo-remsim-server`.
*-n, --num-slots <1-65535>*::
Specify the number of slots that this bankd handles.
*-I, --bind-IP A.B.C.D*::
Specify the local IP address to which the socket for incoming connections
from remsim-clients is bound to.
from `osmo-remsim-clients` is bound to.
*-P, --bind-port <1-65535>*::
Specify the local TCP port to whicc the socket for incoming connections
from remsim-clients is bound to.
from `osmo-remsim-client`s is bound to.
=== Logging
remsim-bankd currently logs to stdout only, and the logging verbosity
is not yet configurable. However, as the libosmocore logging framework
is used, extending this is an easy modification.
`osmo-remsim-bankd` currently logs to stdout only, and the logging
verbosity is not yet configurable. However, as the libosmocore logging
framework is used, extending this is an easy modification.
=== `bankd_pcsc_slots.csv` CSV file

View File

@ -1,18 +1,19 @@
== simtrace2-remsim-client
== osmo-remsim-client-st2
The client interfaces with GSM phones / modems via dedicated "Card
Emulation" devices such as the Osmocom SIMtrace2 or sysmocom sysmoQMOD
board + firmware. This hardware implements the ISO7816-3 electrical
interface and protocol handling and passes any TPDU headers received
from the phone/modem to `remsim-client` for further processing of the
TPDUs associated to the given APDU transfer.
from the phone/modem to `osmo-remsim-client` for further processing of
the TPDUs associated to the given APDU transfer.
`remsim-client` connects via a RSPRO control connection to remsim-server
at startup and registers itself. It will receive configuration data
such as the `remsim-bankd` IP+Port and the ClientId from remsim-server.
`osmo-remsim-client` connects via a RSPRO control connection to
`osmo-remsim-server` at startup and registers itself. It will receive
configuration data such as the `osmo-remsim-bankd` IP+Port and the
ClientId from `osmo-remsim-server`.
After receiving the configuration, `remsim-client` will establish a RSPRO
data connection to the `remsim-bankd` IP:Port.
After receiving the configuration, `osmo-remsim-client` will establish a
RSPRO data connection to the `osmo-remsim-bankd` IP:Port.
As the USB interface for remote SIM in simtrace2.git uses one interface
per slot, we can implement the client in blocking mode, i.e. use
@ -21,35 +22,35 @@ to a more complex async implementation.
=== Running
simtrace2-remsim-client currently has the following command-line options:
osmo-remsim-client-st2 currently has the following command-line options:
==== SYNOPSIS
*simtrace2-remsim-client* [...]
*osmo-remsim-client-st2* [...]
==== OPTIONS
*-h, --help*::
Print a short help message about the supported options
*-s, --server-host A.B.C.D*::
Specify the remote IP address / hostname of the remsim-server to which
this client shall establish its RSPRO control connection
Specify the remote IP address / hostname of the `osmo-remsim-server` to
which this client shall establish its RSPRO control connection
*-p, --server-port <1-65535>*::
Specify the remote TCP port number of the remsim-server to which this client
shall establish its RSPRO control connection
Specify the remote TCP port number of the `osmo-remsim-server` to which
this client shall establish its RSPRO control connection
*-c, --client-id <1-65535>*::
Specify the numeric client identifier of the SIM bank this bankd
instance operates. The tuple of client-id and client-slot must be unique
among all clients connecting to the same remsim-server.
instance operates. The tuple of client-id and client-slot must be
unique among all clients connecting to the same `osmo-remsim-server`.
*-n, --client-slot <0-65535>*::
Specify the slot number served within this client. The tuple of
client-id and client-slot must be unique among all clients connecting
to the same remsim-server.
to the same `osmo-remsim-server`.
*-i, --gsmtap-ip A.B.C.D*::
Specify the IP address (if any) to which APDU traces are sent in
GSMTAP format (useful for debugging; supported by wireshark).
*-k, --keep-running*::
Specify if the remsim-client should terminate after handling one
Specify if the `osmo-remsim-client` should terminate after handling one
session, or whether it should keep running. Fast respawn (i.e. no
--keep-running) is probably the more robust option at this point.
*-V, --usb-vendor*::
@ -79,11 +80,11 @@ simtrace2-remsim-client currently has the following command-line options:
SIM emulation device attached to your system.
*-a, --atr HEXSTRING*::
Specify the initial ATR to be communicated to the modem/phone. Can
and will later be overridden by the ATR as specified by remsim-bankd
once a card has been mapped to this client.
and will later be overridden by the ATR as specified by
`osmo-remsim-bankd` once a card has been mapped to this client.
=== Logging
remsim-client currently logs to stdout only, and the logging verbosity
is not yet configurable. However, as the libosmocore logging framework
is used, extending this is an easy modification.
`osmo-remsim-client` currently logs to stdout only, and the logging
verbosity is not yet configurable. However, as the libosmocore logging
framework is used, extending this is an easy modification.

View File

@ -1,12 +1,12 @@
== remsim-server
== osmo-remsim-server
=== Running
`remsim-server` currently has no command-line arguments. It will bind to
INADDR_ANY and offer the following TCP ports:
`osmo-remsim-server` currently has no command-line arguments. It will
bind to INADDR_ANY and offer the following TCP ports:
* Port 9998 for the inbound control connections from `remsim-client`
and `remsim-bankd`
* Port 9998 for the inbound control connections from `osmo-remsim-client`
and `osmo-remsim-bankd`
* Port 9997 for the RESTful/JSON Web API (role: HTTP server)
It is intended to make these settings (IP addresses, ports) configurable
@ -14,13 +14,13 @@ in future versions.
=== Logging
`remsim-server` currently logs to stdout only, and the logging verbosity
is not yet configurable. However, as the libosmocore logging framework
is used, extending this is an easy modification.
`osmo-remsim-server` currently logs to stdout only, and the logging
verbosity is not yet configurable. However, as the libosmocore logging
framework is used, extending this is an easy modification.
=== RESTful/JSON Web API
`remsim-server` provides a RESTful/JSON WEB API for application logic
`osmo-remsim-server` provides a RESTful/JSON WEB API for application logic
integration. The purpose of the API is to allow run-time configuration
and monitoring of the entire osmo-remsim system.
@ -29,28 +29,28 @@ The API currently has version 1, and the URL prefix is /api/backend/v1
==== /api/backend/v1/clients
*GET* obtains a JSON list where each element represents one currently
connected `remsim-client`.
connected `osmo-remsim-client`.
No other HTTP operation is implemented.
==== /api/backend/v1/clients/:client_id
*GET* obtains a single JSON object representing one specific currently
connected `remsim-client`.
connected `osmo-remsim-client`.
No other HTTP operation is implemented.
==== /api/backend/v1/bankds
*GET* obtains a JSON list where each element represents one currently
connected `remsim-bankd`.
connected `osmo-remsim-bankd`.
No other HTTP operation is implemented.
==== /api/backend/v1/bankds/:bank_id
*GET* obtains a single JSON object representing one specific currently
connected `remsim-bankd`.
connected `osmo-remsim-bankd`.
No other HTTP operation is implemented.
@ -74,5 +74,5 @@ No other HTTP operation is implemented.
==== /api/backend/v1/global-reset
*POST* performs a global reset of the `remsim-server` state. This means
all mappings are removed.
*POST* performs a global reset of the `osmo-remsim-server` state. This
means all mappings are removed.

View File

@ -20,24 +20,25 @@ noinst_HEADERS = debug.h bankd.h client.h internal.h rspro_util.h slotmap.h rspr
simtrace2/simtrace_prot.h \
simtrace2/simtrace_usb.h
bin_PROGRAMS = pcsc_test remsim-bankd remsim-client simtrace2-remsim-client
bin_PROGRAMS = osmo-remsim-bankd osmo-remsim-client-st2
noinst_PROGRAMS = pcsc_test remsim-client
pcsc_test_SOURCES = driver_core.c driver_pcsc.c main.c
pcsc_test_LDADD = $(OSMOCORE_LIBS) \
$(PCSC_LIBS) libosmo-rspro.la
remsim_bankd_SOURCES = slotmap.c bankd_main.c bankd_pcsc.c rspro_client_fsm.c debug.c
remsim_bankd_LDADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOABIS_LIBS) \
$(PCSC_LIBS) libosmo-rspro.la -lcsv
osmo_remsim_bankd_SOURCES = slotmap.c bankd_main.c bankd_pcsc.c rspro_client_fsm.c debug.c
osmo_remsim_bankd_LDADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOABIS_LIBS) \
$(PCSC_LIBS) libosmo-rspro.la -lcsv
remsim_client_SOURCES = remsim_client.c rspro_client_fsm.c bankd_client_fsm.c debug.c
remsim_client_LDADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOABIS_LIBS) \
libosmo-rspro.la
simtrace2_remsim_client_SOURCES = simtrace2-remsim_client.c \
bankd_client_fsm.c rspro_client_fsm.c debug.c \
simtrace2/apdu_dispatch.c \
simtrace2/simtrace2-discovery.c \
simtrace2/libusb_util.c
simtrace2_remsim_client_LDADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOABIS_LIBS) $(USB_LIBS) $(OSMOSIM_LIBS)\
libosmo-rspro.la
osmo_remsim_client_st2_SOURCES = simtrace2-remsim_client.c \
bankd_client_fsm.c rspro_client_fsm.c debug.c \
simtrace2/apdu_dispatch.c \
simtrace2/simtrace2-discovery.c \
simtrace2/libusb_util.c
osmo_remsim_client_st2_LDADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOABIS_LIBS) \
$(USB_LIBS) $(OSMOSIM_LIBS) libosmo-rspro.la

View File

@ -6,12 +6,13 @@ AM_CFLAGS = -Wall -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcd
noinst_HEADERS = rspro_server.h rest_api.h
bin_PROGRAMS = remsim-server
bin_PROGRAMS = osmo-remsim-server
remsim_server_SOURCES = remsim_server.c rspro_server.c rest_api.c ../rspro_util.c ../slotmap.c ../debug.c
remsim_server_LDADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOABIS_LIBS) \
$(ULFIUS_LIBS) $(JANSSON_LIBS) \
$(top_builddir)/src/libosmo-rspro.la
osmo_remsim_server_SOURCES = remsim_server.c rspro_server.c rest_api.c \
../rspro_util.c ../slotmap.c ../debug.c
osmo_remsim_server_LDADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOABIS_LIBS) \
$(ULFIUS_LIBS) $(JANSSON_LIBS) \
$(top_builddir)/src/libosmo-rspro.la
# as suggested in http://lists.gnu.org/archive/html/automake/2009-03/msg00011.html
FORCE: