Introduce {server,bankd}_conn_send_rspro()
Change-Id: I8cae6f67567dcbf4b6d62fb5a76f5b7134b16f5d
This commit is contained in:
parent
3dcdd20343
commit
a844bb07d8
|
@ -47,6 +47,11 @@ static void bankd_updown_cb(struct ipa_client_conn *conn, int up)
|
||||||
osmo_fsm_inst_dispatch(bc->bankd_fi, up ? BDC_E_TCP_UP: BDC_E_TCP_DOWN, 0);
|
osmo_fsm_inst_dispatch(bc->bankd_fi, up ? BDC_E_TCP_UP: BDC_E_TCP_DOWN, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int bankd_conn_send_rspro(struct bankd_client *bc, RsproPDU_t *rspro)
|
||||||
|
{
|
||||||
|
return ipa_client_conn_send_rspro(bc->bankd_conn, rspro);
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* bankd connection FSM: Remsim Client connection to Bankd
|
* bankd connection FSM: Remsim Client connection to Bankd
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
@ -92,7 +97,7 @@ static void bdc_st_established_onenter(struct osmo_fsm_inst *fi, uint32_t prev_s
|
||||||
|
|
||||||
/* FIXME: Send ClientConnReq */
|
/* FIXME: Send ClientConnReq */
|
||||||
pdu = rspro_gen_ConnectClientReq(&bc->srv_conn.own_comp_id, bc->srv_conn.clslot);
|
pdu = rspro_gen_ConnectClientReq(&bc->srv_conn.own_comp_id, bc->srv_conn.clslot);
|
||||||
ipa_client_conn_send_rspro(bc->bankd_conn, pdu);
|
bankd_conn_send_rspro(bc, pdu);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bdc_st_established(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
static void bdc_st_established(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
||||||
|
|
|
@ -36,6 +36,6 @@ struct bankd_client {
|
||||||
struct osmo_fsm_inst *bankd_fi;
|
struct osmo_fsm_inst *bankd_fi;
|
||||||
};
|
};
|
||||||
|
|
||||||
void ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro);
|
int bankd_conn_send_rspro(struct bankd_client *bc, RsproPDU_t *pdu);
|
||||||
int bankd_read_cb(struct ipa_client_conn *conn, struct msgb *msg);
|
int bankd_read_cb(struct ipa_client_conn *conn, struct msgb *msg);
|
||||||
int bankd_conn_fsm_alloc(struct bankd_client *bc);
|
int bankd_conn_fsm_alloc(struct bankd_client *bc);
|
||||||
|
|
|
@ -140,7 +140,7 @@ static int srvc_handle_rx(struct rspro_server_conn *srvc, const RsproPDU_t *pdu)
|
||||||
osmo_fsm_inst_dispatch(g_client->bankd_fi, BDC_E_ESTABLISH, NULL);
|
osmo_fsm_inst_dispatch(g_client->bankd_fi, BDC_E_ESTABLISH, NULL);
|
||||||
/* send response to server */
|
/* send response to server */
|
||||||
resp = rspro_gen_ConfigClientRes(ResultCode_ok);
|
resp = rspro_gen_ConfigClientRes(ResultCode_ok);
|
||||||
ipa_client_conn_send_rspro(srvc->conn, resp);
|
server_conn_send_rspro(srvc, resp);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Unknown/Unsupported RSPRO PDU type: %u\n", pdu->msg.present);
|
fprintf(stderr, "Unknown/Unsupported RSPRO PDU type: %u\n", pdu->msg.present);
|
||||||
|
|
|
@ -55,11 +55,18 @@ static void push_and_send(struct ipa_client_conn *ipa, struct msgb *msg_tx)
|
||||||
/* msg_tx is now queued and will be freed. */
|
/* msg_tx is now queued and will be freed. */
|
||||||
}
|
}
|
||||||
|
|
||||||
void ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro)
|
int ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro)
|
||||||
{
|
{
|
||||||
struct msgb *msg = rspro_enc_msg(rspro);
|
struct msgb *msg = rspro_enc_msg(rspro);
|
||||||
OSMO_ASSERT(msg);
|
if (!msg)
|
||||||
|
return -1;
|
||||||
push_and_send(ipa, msg);
|
push_and_send(ipa, msg);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int server_conn_send_rspro(struct rspro_server_conn *srvc, RsproPDU_t *rspro)
|
||||||
|
{
|
||||||
|
return ipa_client_conn_send_rspro(srvc->conn, rspro);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum server_conn_fsm_state {
|
enum server_conn_fsm_state {
|
||||||
|
@ -210,7 +217,7 @@ static void srvc_st_established_onenter(struct osmo_fsm_inst *fi, uint32_t prev_
|
||||||
pdu = rspro_gen_ConnectClientReq(&srvc->own_comp_id, srvc->clslot);
|
pdu = rspro_gen_ConnectClientReq(&srvc->own_comp_id, srvc->clslot);
|
||||||
else
|
else
|
||||||
pdu = rspro_gen_ConnectBankReq(&srvc->own_comp_id, 1, 8 /* FIXME */);
|
pdu = rspro_gen_ConnectBankReq(&srvc->own_comp_id, 1, 8 /* FIXME */);
|
||||||
ipa_client_conn_send_rspro(srvc->conn, pdu);
|
server_conn_send_rspro(srvc, pdu);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void srvc_st_established(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
static void srvc_st_established(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
||||||
|
|
|
@ -36,4 +36,6 @@ struct rspro_server_conn {
|
||||||
uint16_t server_port;
|
uint16_t server_port;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro);
|
||||||
|
int server_conn_send_rspro(struct rspro_server_conn *srvc, RsproPDU_t *rspro);
|
||||||
int server_conn_fsm_alloc(void *ctx, struct rspro_server_conn *srvc);
|
int server_conn_fsm_alloc(void *ctx, struct rspro_server_conn *srvc);
|
||||||
|
|
|
@ -632,7 +632,7 @@ static int srvc_handle_rx(struct rspro_server_conn *srvc, const RsproPDU_t *pdu)
|
||||||
osmo_fsm_inst_dispatch(g_client->bankd_fi, BDC_E_ESTABLISH, NULL);
|
osmo_fsm_inst_dispatch(g_client->bankd_fi, BDC_E_ESTABLISH, NULL);
|
||||||
/* send response to server */
|
/* send response to server */
|
||||||
resp = rspro_gen_ConfigClientRes(ResultCode_ok);
|
resp = rspro_gen_ConfigClientRes(ResultCode_ok);
|
||||||
ipa_client_conn_send_rspro(srvc->conn, resp);
|
server_conn_send_rspro(srvc, resp);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Unknown/Unsupported RSPRO PDU type: %u\n", pdu->msg.present);
|
fprintf(stderr, "Unknown/Unsupported RSPRO PDU type: %u\n", pdu->msg.present);
|
||||||
|
|
Loading…
Reference in New Issue