Harald Welte | 137c440 | 2018-08-17 21:25:56 +0200 | [diff] [blame] | 1 | #pragma once |
| 2 | |
| 3 | #include <osmocom/core/msgb.h> |
| 4 | #include <osmocom/rspro/RsproPDU.h> |
| 5 | #include <osmocom/rspro/ComponentType.h> |
| 6 | |
| 7 | #define MAX_NAME_LEN 32 |
| 8 | struct app_comp_id { |
| 9 | enum ComponentType type; |
| 10 | char name[MAX_NAME_LEN+1]; |
| 11 | char software[MAX_NAME_LEN+1]; |
| 12 | char sw_version[MAX_NAME_LEN+1]; |
| 13 | char hw_manufacturer[MAX_NAME_LEN+1]; |
| 14 | char hw_model[MAX_NAME_LEN+1]; |
| 15 | char hw_serial_nr[MAX_NAME_LEN+1]; |
| 16 | char hw_version[MAX_NAME_LEN+1]; |
| 17 | char fw_version[MAX_NAME_LEN+1]; |
| 18 | }; |
| 19 | |
Harald Welte | b49ac9c | 2019-03-09 20:36:07 +0100 | [diff] [blame] | 20 | const char *rspro_msgt_name(const RsproPDU_t *pdu); |
| 21 | |
Harald Welte | 137c440 | 2018-08-17 21:25:56 +0200 | [diff] [blame] | 22 | struct msgb *rspro_msgb_alloc(void); |
| 23 | struct msgb *rspro_enc_msg(RsproPDU_t *pdu); |
| 24 | RsproPDU_t *rspro_dec_msg(struct msgb *msg); |
| 25 | RsproPDU_t *rspro_gen_ConnectBankReq(const struct app_comp_id *a_cid, |
| 26 | uint16_t bank_id, uint16_t num_slots); |
Harald Welte | f5a0fa3 | 2019-03-03 15:44:18 +0100 | [diff] [blame] | 27 | RsproPDU_t *rspro_gen_ConnectBankRes(const struct app_comp_id *a_cid, e_ResultCode res); |
Harald Welte | 57555aa | 2018-08-17 22:05:06 +0200 | [diff] [blame] | 28 | RsproPDU_t *rspro_gen_ConnectClientReq(const struct app_comp_id *a_cid, const ClientSlot_t *client); |
Harald Welte | 10f6c21 | 2018-09-24 14:55:55 +0200 | [diff] [blame] | 29 | RsproPDU_t *rspro_gen_ConnectClientRes(const struct app_comp_id *a_cid, e_ResultCode res); |
Harald Welte | 137c440 | 2018-08-17 21:25:56 +0200 | [diff] [blame] | 30 | RsproPDU_t *rspro_gen_CreateMappingReq(const ClientSlot_t *client, const BankSlot_t *bank); |
Harald Welte | c0a4ae4 | 2018-10-15 00:44:53 +0200 | [diff] [blame] | 31 | RsproPDU_t *rspro_gen_CreateMappingRes(e_ResultCode res); |
| 32 | RsproPDU_t *rspro_gen_RemoveMappingReq(const ClientSlot_t *client, const BankSlot_t *bank); |
| 33 | RsproPDU_t *rspro_gen_RemoveMappingRes(e_ResultCode res); |
Harald Welte | d571a3e | 2019-03-11 22:09:50 +0100 | [diff] [blame] | 34 | RsproPDU_t *rspro_gen_ConfigClientIdReq(const ClientSlot_t *client); |
| 35 | RsproPDU_t *rspro_gen_ConfigClientIdRes(e_ResultCode res); |
| 36 | RsproPDU_t *rspro_gen_ConfigClientBankReq(const BankSlot_t *bank, uint32_t ip, uint16_t port); |
| 37 | RsproPDU_t *rspro_gen_ConfigClientBankRes(e_ResultCode res); |
Harald Welte | 137c440 | 2018-08-17 21:25:56 +0200 | [diff] [blame] | 38 | RsproPDU_t *rspro_gen_SetAtrReq(uint16_t client_id, uint16_t slot_nr, const uint8_t *atr, |
| 39 | unsigned int atr_len); |
Harald Welte | fa36559 | 2019-03-28 20:28:57 +0100 | [diff] [blame] | 40 | RsproPDU_t *rspro_gen_SetAtrRes(e_ResultCode res); |
Harald Welte | 5d16b1c | 2018-09-23 19:25:46 +0200 | [diff] [blame] | 41 | RsproPDU_t *rspro_gen_TpduModem2Card(const ClientSlot_t *client, const BankSlot_t *bank, |
| 42 | const uint8_t *tpdu, unsigned int tpdu_len); |
| 43 | RsproPDU_t *rspro_gen_TpduCard2Modem(const BankSlot_t *bank, const ClientSlot_t *client, |
| 44 | const uint8_t *tpdu, unsigned int tpdu_len); |
Harald Welte | 92bd881 | 2019-03-02 14:52:17 +0100 | [diff] [blame] | 45 | |
Harald Welte | 4e7a285 | 2019-03-17 21:01:50 +0100 | [diff] [blame] | 46 | e_ResultCode rspro_get_result(const RsproPDU_t *pdu); |
| 47 | |
Harald Welte | 92bd881 | 2019-03-02 14:52:17 +0100 | [diff] [blame] | 48 | void rspro_comp_id_retrieve(struct app_comp_id *out, const ComponentIdentity_t *in); |
Harald Welte | 0eaa0ef | 2019-03-02 15:12:42 +0100 | [diff] [blame] | 49 | const char *rspro_IpAddr2str(const IpAddress_t *in); |
Harald Welte | cf8b89a | 2019-03-11 22:16:22 +0100 | [diff] [blame] | 50 | |
| 51 | #include "slotmap.h" |
| 52 | void rspro2bank_slot(struct bank_slot *out, const BankSlot_t *in); |
| 53 | void bank_slot2rspro(BankSlot_t *out, const struct bank_slot *in); |
| 54 | |
| 55 | void rspro2client_slot(struct client_slot *out, const ClientSlot_t *in); |
| 56 | void client_slot2rspro(ClientSlot_t *out, const struct client_slot *in); |