libosmocore/src/isdn/libosmoisdn.map

53 lines
1003 B
Plaintext
Raw Permalink Normal View History

LIBOSMOISDN_1.0 {
global:
tall_lapd_ctx;
lapd_dl_exit;
lapd_dl_init;
lapd_dl_init2;
lapd_dl_set_name;
lapd_dl_reset;
lapd_dl_set_flags;
lapd_msgb_alloc;
lapd_ph_data_ind;
lapd_ph_rts_ind;
lapd_recv_dlsap;
lapd_set_mode;
lapd_state_names;
lapd_t200_timeout;
osmo_i460_demux_in;
osmo_i460_mux_enqueue;
osmo_i460_mux_out;
osmo_i460_subchan_add;
osmo_i460_subchan_del;
osmo_i460_subchan_count;
osmo_i460_ts_init;
osmo_v110_decode_frame;
osmo_v110_encode_frame;
osmo_v110_ubit_dump;
osmo_v110_e1e2e3;
osmo_v110_sync_ra1_get_user_data_chunk_bitlen;
osmo_v110_sync_ra1_get_user_data_rate;
osmo_v110_sync_ra1_get_intermediate_rate;
osmo_v110_sync_ra1_user_to_ir;
osmo_v110_sync_ra1_ir_to_user;
isdn: initial implementation of the V.110 TA ITU-T recommendation V.110 defines Terminal Adaptor (TA) functions for the connection of Terminal Equipment (TE) having standard V-series interfaces to the ISDN. This patch brings "software" implementation of the TA to libosmoisdn. The primary user for this soft-TA is the mobile-side implementation of CSD (Circuit Switched Data) in osmocom-bb. CSD is heavily based on V.110, which is not surprising given that GSM is a "wireless ISDN". Nevertheless, this code will likely also be useful in the context of retro-networking. Similarly to the existing V.110 code in libosmoisdn, the present implementation aims to be functional and correct, rather than efficient in any way. It also has several limitations, which are not critical for the CSD use case, but eventually may be a problem for other use cases in the context of retro-networking. Therefore, the V.110 TA API should be considered _unstable_, and may be subject to change in the future. +-------+ +------+ B-channel +------+ +-------+ | TE1 |------| TA |~~~~~~~~~~~~~~~| TA |------| TE2 | +-------+ +------+ +------+ +-------+ TE (also known as DTE) is basically a computer, having a V-series (usually RS-232) connection to TA (also known as DCE). The TA acts like a regular analog modem, except that it is not performing any kind of modulation or demodulation itself. The TE-TA interface is implemented by the user supplied callback functions, configured during the allocation of a TA instance: * .rx_cb() - receive call-back of the application, * .tx_cb() - transmit call-back of the application, * .status_update_cb() - status line update call-back. In addition to that, the application (TE) can interact with the V.24 status lines (circuits) using the following API: * osmo_v110_ta_{get,set}_status(), * osmo_v110_ta_{get,set}_circuit(). The Rx and Tx between TE and TA is always driven by the TA itself, as a result of an interaction with the lower layer implementing the B-channel interface. There is currently no buffering and thus no way for TE to initiate transmission or pull data on its own. The TA-TA (B-channel) interface is implemented by the following functions, which are meant to be called by the lower layer transmitting and receiving V.110 frames over certain medium: * osmo_v110_ta_frame_in() - indicate a received V.110 frame, * osmo_v110_ta_frame_out() - pull a V.110 frame for transmission, * osmo_v110_ta_[de]sync_ind() - indicate a synchronization event. The lower layer is responsible for finding the synchronization pattern (if needed), aligning to the frame boundaries, and doing the V.110 frame coding. The D-channel signalling is behind the scope of this module. Initial (Work-in-Progress) implementation by Harald Welte, completed and co-authored by Vadim Yanitskiy. Change-Id: I5716bd6fd0201ee7a7a29e72f775972cd374082f Related: OS#4396
2023-03-14 19:33:51 +00:00
osmo_v110_ta_alloc;
osmo_v110_ta_free;
osmo_v110_ta_set_timer_val_ms;
osmo_v110_ta_frame_in;
osmo_v110_ta_frame_out;
osmo_v110_ta_sync_ind;
osmo_v110_ta_desync_ind;
osmo_v110_ta_get_status;
osmo_v110_ta_get_circuit;
osmo_v110_ta_set_circuit;
osmo_v110_ta_circuit_names;
osmo_v110_ta_circuit_descs;
local: *;
};