diff --git a/README.md b/README.md index 8808338..8f2657f 100644 --- a/README.md +++ b/README.md @@ -4,22 +4,23 @@ osmo-remsim - Osmocom remote SIM software suite This software suite is a work in progress. -remsim-client -------------- +osmo-remsim-client +------------------ 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 +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 @@ -27,22 +28,22 @@ blocking I/O on the TCP/RSPRO side. This simplifies the code compared to a more complex async implementation. -remsim-bankd ------------- +osmo-remsim-bankd +----------------- -The remsim-bankd (SIM Bank Daemon) manages one given SIM bank. The +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 +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 remsim-server at any given +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, @@ -62,10 +63,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)