aboutsummaryrefslogtreecommitdiffstats
path: root/src/client.h
blob: 3046f8b30c85921a56f01b0688fe54d1cb407b95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma once

#include <osmocom/core/fsm.h>
#include <osmocom/abis/ipa.h>

#include "rspro_util.h"

enum {
	DMAIN,
};

/* fsm.c */

enum bankd_conn_fsm_event {
	BDC_E_TCP_UP,
	BDC_E_TCP_DOWN,
	BDC_E_CLIENT_CONN_RES,
};


enum server_conn_fsm_event {
	SRVC_E_TCP_UP,
	SRVC_E_TCP_DOWN,
	SRVC_E_CLIENT_CONN_RES,
};

extern struct osmo_fsm remsim_client_bankd_fsm;
extern struct osmo_fsm remsim_client_server_fsm;

/* main.c */

struct bankd_client {
	/* connection to the remsim-server (control) */
	struct ipa_client_conn *srv_conn;
	struct osmo_fsm_inst *srv_fi;

	/* our own component ID */
	struct app_comp_id own_comp_id;

	/* connection to the remsim-bankd */
	char *bankd_host;
	uint16_t bankd_port;
	struct ipa_client_conn *bankd_conn;
	struct osmo_fsm_inst *bankd_fi;
};

void bankd_send_rspro(struct bankd_client *bc, RsproPDU_t *rspro);
int bankd_read_cb(struct ipa_client_conn *conn, struct msgb *msg);
int bankd_conn_fsm_alloc(struct bankd_client *bc);