mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 02:37:00 +00:00
lib: dont be tricky with session_id just make it a session_id
- Previously was substituting a pointer to local allocated session for the session_id returned from the FE adapter. This complexity isn't needed. - Get rid of "%llu" format and the casts that came with it, instead use PRIu64 and the actual (uint64_t) type. Signed-off-by: Christian Hopps <chopps@labn.net>
This commit is contained in:
parent
bcc350971f
commit
d6665cf63f
@ -31,8 +31,8 @@ struct mgmt_fe_client_ctx;
|
||||
PREDECL_LIST(mgmt_sessions);
|
||||
|
||||
struct mgmt_fe_client_session {
|
||||
uint64_t client_id;
|
||||
uint64_t session_id;
|
||||
uint64_t client_id; /* FE client identifies itself with this ID */
|
||||
uint64_t session_id; /* FE adapter identified session with this ID */
|
||||
struct mgmt_fe_client_ctx *client_ctx;
|
||||
uintptr_t user_ctx;
|
||||
|
||||
@ -59,37 +59,40 @@ static struct mgmt_fe_client_ctx mgmt_fe_client_ctx = {
|
||||
|
||||
static struct mgmt_fe_client_session *
|
||||
mgmt_fe_find_session_by_client_id(struct mgmt_fe_client_ctx *client_ctx,
|
||||
uint64_t client_id)
|
||||
uint64_t client_id)
|
||||
{
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
FOREACH_SESSION_IN_LIST (client_ctx, session) {
|
||||
if (session->client_id == client_id) {
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Found session %p for client-id %llu.", session,
|
||||
(unsigned long long)client_id);
|
||||
MGMTD_FE_CLIENT_DBG("Found session-id %" PRIu64
|
||||
" using client-id %" PRIu64,
|
||||
session->session_id, client_id);
|
||||
return session;
|
||||
}
|
||||
}
|
||||
|
||||
MGMTD_FE_CLIENT_DBG("Session not found using client-id %" PRIu64,
|
||||
client_id);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct mgmt_fe_client_session *
|
||||
mgmt_fe_find_session_by_session_id(struct mgmt_fe_client_ctx *client_ctx,
|
||||
uint64_t session_id)
|
||||
uint64_t session_id)
|
||||
{
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
FOREACH_SESSION_IN_LIST (client_ctx, session) {
|
||||
if (session->session_id == session_id) {
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Found session %p for session-id %llu.",
|
||||
session, (unsigned long long)session_id);
|
||||
"Found session of client-id %" PRIu64
|
||||
" using session-id %" PRIu64,
|
||||
session->client_id, session_id);
|
||||
return session;
|
||||
}
|
||||
}
|
||||
|
||||
MGMTD_FE_CLIENT_DBG("Session not found using session-id %" PRIu64,
|
||||
session_id);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -102,8 +105,7 @@ static int mgmt_fe_client_send_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
(size_t(*)(void *, void *))mgmtd__fe_message__pack);
|
||||
}
|
||||
|
||||
static int
|
||||
mgmt_fe_send_register_req(struct mgmt_fe_client_ctx *client_ctx)
|
||||
static int mgmt_fe_send_register_req(struct mgmt_fe_client_ctx *client_ctx)
|
||||
{
|
||||
Mgmtd__FeMessage fe_msg;
|
||||
Mgmtd__FeRegisterReq rgstr_req;
|
||||
@ -121,10 +123,9 @@ mgmt_fe_send_register_req(struct mgmt_fe_client_ctx *client_ctx)
|
||||
return mgmt_fe_client_send_msg(client_ctx, &fe_msg);
|
||||
}
|
||||
|
||||
static int
|
||||
mgmt_fe_send_session_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
struct mgmt_fe_client_session *session,
|
||||
bool create)
|
||||
static int mgmt_fe_send_session_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
struct mgmt_fe_client_session *session,
|
||||
bool create)
|
||||
{
|
||||
Mgmtd__FeMessage fe_msg;
|
||||
Mgmtd__FeSessionReq sess_req;
|
||||
@ -144,24 +145,22 @@ mgmt_fe_send_session_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
fe_msg.session_req = &sess_req;
|
||||
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Sending SESSION_REQ message for %s session %llu to MGMTD Frontend server",
|
||||
create ? "creating" : "destroying",
|
||||
(unsigned long long)session->client_id);
|
||||
"Sending SESSION_REQ %s message for client-id %" PRIu64,
|
||||
create ? "create" : "destroy", session->client_id);
|
||||
|
||||
return mgmt_fe_client_send_msg(client_ctx, &fe_msg);
|
||||
}
|
||||
|
||||
static int
|
||||
mgmt_fe_send_lockds_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
struct mgmt_fe_client_session *session, bool lock,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id)
|
||||
static int mgmt_fe_send_lockds_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
uint64_t session_id, bool lock,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id)
|
||||
{
|
||||
(void)req_id;
|
||||
Mgmtd__FeMessage fe_msg;
|
||||
Mgmtd__FeLockDsReq lockds_req;
|
||||
|
||||
mgmtd__fe_lock_ds_req__init(&lockds_req);
|
||||
lockds_req.session_id = session->session_id;
|
||||
lockds_req.session_id = session_id;
|
||||
lockds_req.req_id = req_id;
|
||||
lockds_req.ds_id = ds_id;
|
||||
lockds_req.lock = lock;
|
||||
@ -171,26 +170,25 @@ mgmt_fe_send_lockds_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
fe_msg.lockds_req = &lockds_req;
|
||||
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Sending %sLOCK_REQ message for Ds:%d session %llu to MGMTD Frontend server",
|
||||
lock ? "" : "UN", ds_id,
|
||||
(unsigned long long)session->client_id);
|
||||
"Sending %sLOCK_REQ message for Ds:%d session-id %" PRIu64,
|
||||
lock ? "" : "UN", ds_id, session_id);
|
||||
|
||||
return mgmt_fe_client_send_msg(client_ctx, &fe_msg);
|
||||
}
|
||||
|
||||
static int
|
||||
mgmt_fe_send_setcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
struct mgmt_fe_client_session *session,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangCfgDataReq **data_req, int num_data_reqs,
|
||||
bool implicit_commit, Mgmtd__DatastoreId dst_ds_id)
|
||||
static int mgmt_fe_send_setcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
uint64_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangCfgDataReq **data_req,
|
||||
int num_data_reqs, bool implicit_commit,
|
||||
Mgmtd__DatastoreId dst_ds_id)
|
||||
{
|
||||
(void)req_id;
|
||||
Mgmtd__FeMessage fe_msg;
|
||||
Mgmtd__FeSetConfigReq setcfg_req;
|
||||
|
||||
mgmtd__fe_set_config_req__init(&setcfg_req);
|
||||
setcfg_req.session_id = session->session_id;
|
||||
setcfg_req.session_id = session_id;
|
||||
setcfg_req.ds_id = ds_id;
|
||||
setcfg_req.req_id = req_id;
|
||||
setcfg_req.data = data_req;
|
||||
@ -203,15 +201,15 @@ mgmt_fe_send_setcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
fe_msg.setcfg_req = &setcfg_req;
|
||||
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Sending SET_CONFIG_REQ message for Ds:%d session %llu (#xpaths:%d) to MGMTD Frontend server",
|
||||
ds_id, (unsigned long long)session->client_id, num_data_reqs);
|
||||
"Sending SET_CONFIG_REQ message for Ds:%d session-id %" PRIu64
|
||||
" (#xpaths:%d)",
|
||||
ds_id, session_id, num_data_reqs);
|
||||
|
||||
return mgmt_fe_client_send_msg(client_ctx, &fe_msg);
|
||||
}
|
||||
|
||||
static int mgmt_fe_send_commitcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
struct mgmt_fe_client_session *session,
|
||||
uint64_t req_id,
|
||||
uint64_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId src_ds_id,
|
||||
Mgmtd__DatastoreId dest_ds_id,
|
||||
bool validate_only, bool abort)
|
||||
@ -221,7 +219,7 @@ static int mgmt_fe_send_commitcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
Mgmtd__FeCommitConfigReq commitcfg_req;
|
||||
|
||||
mgmtd__fe_commit_config_req__init(&commitcfg_req);
|
||||
commitcfg_req.session_id = session->session_id;
|
||||
commitcfg_req.session_id = session_id;
|
||||
commitcfg_req.src_ds_id = src_ds_id;
|
||||
commitcfg_req.dst_ds_id = dest_ds_id;
|
||||
commitcfg_req.req_id = req_id;
|
||||
@ -233,25 +231,24 @@ static int mgmt_fe_send_commitcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
fe_msg.commcfg_req = &commitcfg_req;
|
||||
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Sending COMMIT_CONFIG_REQ message for Src-Ds:%d, Dst-Ds:%d session %llu to MGMTD Frontend server",
|
||||
src_ds_id, dest_ds_id, (unsigned long long)session->client_id);
|
||||
"Sending COMMIT_CONFIG_REQ message for Src-Ds:%d, Dst-Ds:%d session-id %" PRIu64,
|
||||
src_ds_id, dest_ds_id, session_id);
|
||||
|
||||
return mgmt_fe_client_send_msg(client_ctx, &fe_msg);
|
||||
}
|
||||
|
||||
static int
|
||||
mgmt_fe_send_getcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
struct mgmt_fe_client_session *session,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq * data_req[],
|
||||
int num_data_reqs)
|
||||
static int mgmt_fe_send_getcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
uint64_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq *data_req[],
|
||||
int num_data_reqs)
|
||||
{
|
||||
(void)req_id;
|
||||
Mgmtd__FeMessage fe_msg;
|
||||
Mgmtd__FeGetConfigReq getcfg_req;
|
||||
|
||||
mgmtd__fe_get_config_req__init(&getcfg_req);
|
||||
getcfg_req.session_id = session->session_id;
|
||||
getcfg_req.session_id = session_id;
|
||||
getcfg_req.ds_id = ds_id;
|
||||
getcfg_req.req_id = req_id;
|
||||
getcfg_req.data = data_req;
|
||||
@ -262,25 +259,25 @@ mgmt_fe_send_getcfg_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
fe_msg.getcfg_req = &getcfg_req;
|
||||
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Sending GET_CONFIG_REQ message for Ds:%d session %llu (#xpaths:%d) to MGMTD Frontend server",
|
||||
ds_id, (unsigned long long)session->client_id, num_data_reqs);
|
||||
"Sending GET_CONFIG_REQ message for Ds:%d session-id %" PRIu64
|
||||
" (#xpaths:%d)",
|
||||
ds_id, session_id, num_data_reqs);
|
||||
|
||||
return mgmt_fe_client_send_msg(client_ctx, &fe_msg);
|
||||
}
|
||||
|
||||
static int
|
||||
mgmt_fe_send_getdata_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
struct mgmt_fe_client_session *session,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq * data_req[],
|
||||
int num_data_reqs)
|
||||
static int mgmt_fe_send_getdata_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
uint64_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq *data_req[],
|
||||
int num_data_reqs)
|
||||
{
|
||||
(void)req_id;
|
||||
Mgmtd__FeMessage fe_msg;
|
||||
Mgmtd__FeGetDataReq getdata_req;
|
||||
|
||||
mgmtd__fe_get_data_req__init(&getdata_req);
|
||||
getdata_req.session_id = session->session_id;
|
||||
getdata_req.session_id = session_id;
|
||||
getdata_req.ds_id = ds_id;
|
||||
getdata_req.req_id = req_id;
|
||||
getdata_req.data = data_req;
|
||||
@ -291,24 +288,26 @@ mgmt_fe_send_getdata_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
fe_msg.getdata_req = &getdata_req;
|
||||
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Sending GET_CONFIG_REQ message for Ds:%d session %llu (#xpaths:%d) to MGMTD Frontend server",
|
||||
ds_id, (unsigned long long)session->client_id, num_data_reqs);
|
||||
"Sending GET_CONFIG_REQ message for Ds:%d session-id %" PRIu64
|
||||
" (#xpaths:%d)",
|
||||
ds_id, session_id, num_data_reqs);
|
||||
|
||||
return mgmt_fe_client_send_msg(client_ctx, &fe_msg);
|
||||
}
|
||||
|
||||
static int mgmt_fe_send_regnotify_req(
|
||||
struct mgmt_fe_client_ctx *client_ctx,
|
||||
struct mgmt_fe_client_session *session, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id, bool register_req,
|
||||
Mgmtd__YangDataXPath * data_req[], int num_data_reqs)
|
||||
static int mgmt_fe_send_regnotify_req(struct mgmt_fe_client_ctx *client_ctx,
|
||||
uint64_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id,
|
||||
bool register_req,
|
||||
Mgmtd__YangDataXPath *data_req[],
|
||||
int num_data_reqs)
|
||||
{
|
||||
(void)req_id;
|
||||
Mgmtd__FeMessage fe_msg;
|
||||
Mgmtd__FeRegisterNotifyReq regntfy_req;
|
||||
|
||||
mgmtd__fe_register_notify_req__init(®ntfy_req);
|
||||
regntfy_req.session_id = session->session_id;
|
||||
regntfy_req.session_id = session_id;
|
||||
regntfy_req.ds_id = ds_id;
|
||||
regntfy_req.register_req = register_req;
|
||||
regntfy_req.data_xpath = data_req;
|
||||
@ -321,9 +320,8 @@ static int mgmt_fe_send_regnotify_req(
|
||||
return mgmt_fe_client_send_msg(client_ctx, &fe_msg);
|
||||
}
|
||||
|
||||
static int
|
||||
mgmt_fe_client_handle_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
Mgmtd__FeMessage *fe_msg)
|
||||
static int mgmt_fe_client_handle_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
Mgmtd__FeMessage *fe_msg)
|
||||
{
|
||||
struct mgmt_fe_client_session *session = NULL;
|
||||
|
||||
@ -333,14 +331,13 @@ mgmt_fe_client_handle_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
*/
|
||||
switch ((int)fe_msg->message_case) {
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_SESSION_REPLY:
|
||||
if (fe_msg->session_reply->create
|
||||
&& fe_msg->session_reply->has_client_conn_id) {
|
||||
if (fe_msg->session_reply->create &&
|
||||
fe_msg->session_reply->has_client_conn_id) {
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Got Session Create Reply Msg for client-id %llu with session-id: %llu.",
|
||||
(unsigned long long)
|
||||
fe_msg->session_reply->client_conn_id,
|
||||
(unsigned long long)
|
||||
fe_msg->session_reply->session_id);
|
||||
"Got SESSION_REPLY (create) for client-id %" PRIu64
|
||||
" with session-id: %" PRIu64,
|
||||
fe_msg->session_reply->client_conn_id,
|
||||
fe_msg->session_reply->session_id);
|
||||
|
||||
session = mgmt_fe_find_session_by_client_id(
|
||||
client_ctx,
|
||||
@ -348,32 +345,26 @@ mgmt_fe_client_handle_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
|
||||
if (session && fe_msg->session_reply->success) {
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Session Create for client-id %llu successful.",
|
||||
(unsigned long long)
|
||||
fe_msg->session_reply
|
||||
->client_conn_id);
|
||||
"Session Created for client-id %" PRIu64,
|
||||
fe_msg->session_reply->client_conn_id);
|
||||
session->session_id =
|
||||
fe_msg->session_reply->session_id;
|
||||
} else {
|
||||
MGMTD_FE_CLIENT_ERR(
|
||||
"Session Create for client-id %llu failed.",
|
||||
(unsigned long long)
|
||||
fe_msg->session_reply
|
||||
->client_conn_id);
|
||||
"Session Create failed for client-id %" PRIu64,
|
||||
fe_msg->session_reply->client_conn_id);
|
||||
}
|
||||
} else if (!fe_msg->session_reply->create) {
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Got Session Destroy Reply Msg for session-id %llu",
|
||||
(unsigned long long)
|
||||
fe_msg->session_reply->session_id);
|
||||
"Got SESSION_REPLY (destroy) for session-id %" PRIu64,
|
||||
fe_msg->session_reply->session_id);
|
||||
|
||||
session = mgmt_fe_find_session_by_session_id(
|
||||
client_ctx, fe_msg->session_req->session_id);
|
||||
}
|
||||
|
||||
if (session && session->client_ctx
|
||||
&& session->client_ctx->client_params
|
||||
.client_session_notify)
|
||||
if (session && session->client_ctx &&
|
||||
session->client_ctx->client_params.client_session_notify)
|
||||
(*session->client_ctx->client_params
|
||||
.client_session_notify)(
|
||||
(uintptr_t)client_ctx,
|
||||
@ -381,71 +372,62 @@ mgmt_fe_client_handle_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
session->client_id,
|
||||
fe_msg->session_reply->create,
|
||||
fe_msg->session_reply->success,
|
||||
(uintptr_t)session, session->user_ctx);
|
||||
fe_msg->session_reply->session_id,
|
||||
session->user_ctx);
|
||||
break;
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_LOCKDS_REPLY:
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Got LockDs Reply Msg for session-id %llu",
|
||||
(unsigned long long)
|
||||
fe_msg->lockds_reply->session_id);
|
||||
MGMTD_FE_CLIENT_DBG("Got LOCKDS_REPLY for session-id %" PRIu64,
|
||||
fe_msg->lockds_reply->session_id);
|
||||
session = mgmt_fe_find_session_by_session_id(
|
||||
client_ctx, fe_msg->lockds_reply->session_id);
|
||||
|
||||
if (session && session->client_ctx
|
||||
&& session->client_ctx->client_params
|
||||
.lock_ds_notify)
|
||||
(*session->client_ctx->client_params
|
||||
.lock_ds_notify)(
|
||||
if (session && session->client_ctx &&
|
||||
session->client_ctx->client_params.lock_ds_notify)
|
||||
(*session->client_ctx->client_params.lock_ds_notify)(
|
||||
(uintptr_t)client_ctx,
|
||||
client_ctx->client_params.user_data,
|
||||
session->client_id, (uintptr_t)session,
|
||||
session->user_ctx,
|
||||
fe_msg->lockds_reply->req_id,
|
||||
session->client_id,
|
||||
fe_msg->lockds_reply->session_id,
|
||||
session->user_ctx, fe_msg->lockds_reply->req_id,
|
||||
fe_msg->lockds_reply->lock,
|
||||
fe_msg->lockds_reply->success,
|
||||
fe_msg->lockds_reply->ds_id,
|
||||
fe_msg->lockds_reply->error_if_any);
|
||||
break;
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_SETCFG_REPLY:
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Got Set Config Reply Msg for session-id %llu",
|
||||
(unsigned long long)
|
||||
fe_msg->setcfg_reply->session_id);
|
||||
MGMTD_FE_CLIENT_DBG("Got SETCFG_REPLY for session-id %" PRIu64,
|
||||
fe_msg->setcfg_reply->session_id);
|
||||
|
||||
session = mgmt_fe_find_session_by_session_id(
|
||||
client_ctx, fe_msg->setcfg_reply->session_id);
|
||||
|
||||
if (session && session->client_ctx
|
||||
&& session->client_ctx->client_params
|
||||
.set_config_notify)
|
||||
(*session->client_ctx->client_params
|
||||
.set_config_notify)(
|
||||
if (session && session->client_ctx &&
|
||||
session->client_ctx->client_params.set_config_notify)
|
||||
(*session->client_ctx->client_params.set_config_notify)(
|
||||
(uintptr_t)client_ctx,
|
||||
client_ctx->client_params.user_data,
|
||||
session->client_id, (uintptr_t)session,
|
||||
session->user_ctx,
|
||||
fe_msg->setcfg_reply->req_id,
|
||||
session->client_id,
|
||||
fe_msg->setcfg_reply->session_id,
|
||||
session->user_ctx, fe_msg->setcfg_reply->req_id,
|
||||
fe_msg->setcfg_reply->success,
|
||||
fe_msg->setcfg_reply->ds_id,
|
||||
fe_msg->setcfg_reply->error_if_any);
|
||||
break;
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_COMMCFG_REPLY:
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Got Commit Config Reply Msg for session-id %llu",
|
||||
(unsigned long long)
|
||||
fe_msg->commcfg_reply->session_id);
|
||||
MGMTD_FE_CLIENT_DBG("Got COMMCFG_REPLY for session-id %" PRIu64,
|
||||
fe_msg->commcfg_reply->session_id);
|
||||
|
||||
session = mgmt_fe_find_session_by_session_id(
|
||||
client_ctx, fe_msg->commcfg_reply->session_id);
|
||||
|
||||
if (session && session->client_ctx
|
||||
&& session->client_ctx->client_params
|
||||
.commit_config_notify)
|
||||
if (session && session->client_ctx &&
|
||||
session->client_ctx->client_params.commit_config_notify)
|
||||
(*session->client_ctx->client_params
|
||||
.commit_config_notify)(
|
||||
(uintptr_t)client_ctx,
|
||||
client_ctx->client_params.user_data,
|
||||
session->client_id, (uintptr_t)session,
|
||||
session->client_id,
|
||||
fe_msg->commcfg_reply->session_id,
|
||||
session->user_ctx,
|
||||
fe_msg->commcfg_reply->req_id,
|
||||
fe_msg->commcfg_reply->success,
|
||||
@ -455,24 +437,20 @@ mgmt_fe_client_handle_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
fe_msg->commcfg_reply->error_if_any);
|
||||
break;
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_GETCFG_REPLY:
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Got Get Config Reply Msg for session-id %llu",
|
||||
(unsigned long long)
|
||||
fe_msg->getcfg_reply->session_id);
|
||||
MGMTD_FE_CLIENT_DBG("Got GETCFG_REPLY for session-id %" PRIu64,
|
||||
fe_msg->getcfg_reply->session_id);
|
||||
|
||||
session = mgmt_fe_find_session_by_session_id(
|
||||
client_ctx, fe_msg->getcfg_reply->session_id);
|
||||
|
||||
if (session && session->client_ctx
|
||||
&& session->client_ctx->client_params
|
||||
.get_data_notify)
|
||||
(*session->client_ctx->client_params
|
||||
.get_data_notify)(
|
||||
if (session && session->client_ctx &&
|
||||
session->client_ctx->client_params.get_data_notify)
|
||||
(*session->client_ctx->client_params.get_data_notify)(
|
||||
(uintptr_t)client_ctx,
|
||||
client_ctx->client_params.user_data,
|
||||
session->client_id, (uintptr_t)session,
|
||||
session->user_ctx,
|
||||
fe_msg->getcfg_reply->req_id,
|
||||
session->client_id,
|
||||
fe_msg->getcfg_reply->session_id,
|
||||
session->user_ctx, fe_msg->getcfg_reply->req_id,
|
||||
fe_msg->getcfg_reply->success,
|
||||
fe_msg->getcfg_reply->ds_id,
|
||||
fe_msg->getcfg_reply->data
|
||||
@ -482,28 +460,24 @@ mgmt_fe_client_handle_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
? fe_msg->getcfg_reply->data->n_data
|
||||
: 0,
|
||||
fe_msg->getcfg_reply->data
|
||||
? fe_msg->getcfg_reply->data
|
||||
->next_indx
|
||||
? fe_msg->getcfg_reply->data->next_indx
|
||||
: 0,
|
||||
fe_msg->getcfg_reply->error_if_any);
|
||||
break;
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_GETDATA_REPLY:
|
||||
MGMTD_FE_CLIENT_DBG(
|
||||
"Got Get Data Reply Msg for session-id %llu",
|
||||
(unsigned long long)
|
||||
fe_msg->getdata_reply->session_id);
|
||||
MGMTD_FE_CLIENT_DBG("Got GETDATA_REPLY for session-id %" PRIu64,
|
||||
fe_msg->getdata_reply->session_id);
|
||||
|
||||
session = mgmt_fe_find_session_by_session_id(
|
||||
client_ctx, fe_msg->getdata_reply->session_id);
|
||||
|
||||
if (session && session->client_ctx
|
||||
&& session->client_ctx->client_params
|
||||
.get_data_notify)
|
||||
(*session->client_ctx->client_params
|
||||
.get_data_notify)(
|
||||
if (session && session->client_ctx &&
|
||||
session->client_ctx->client_params.get_data_notify)
|
||||
(*session->client_ctx->client_params.get_data_notify)(
|
||||
(uintptr_t)client_ctx,
|
||||
client_ctx->client_params.user_data,
|
||||
session->client_id, (uintptr_t)session,
|
||||
session->client_id,
|
||||
fe_msg->getdata_reply->session_id,
|
||||
session->user_ctx,
|
||||
fe_msg->getdata_reply->req_id,
|
||||
fe_msg->getdata_reply->success,
|
||||
@ -512,12 +486,10 @@ mgmt_fe_client_handle_msg(struct mgmt_fe_client_ctx *client_ctx,
|
||||
? fe_msg->getdata_reply->data->data
|
||||
: NULL,
|
||||
fe_msg->getdata_reply->data
|
||||
? fe_msg->getdata_reply->data
|
||||
->n_data
|
||||
? fe_msg->getdata_reply->data->n_data
|
||||
: 0,
|
||||
fe_msg->getdata_reply->data
|
||||
? fe_msg->getdata_reply->data
|
||||
->next_indx
|
||||
? fe_msg->getdata_reply->data->next_indx
|
||||
: 0,
|
||||
fe_msg->getdata_reply->error_if_any);
|
||||
break;
|
||||
@ -687,8 +659,8 @@ void mgmt_fe_client_lib_vty_init(void)
|
||||
* Create a new Session for a Frontend Client connection.
|
||||
*/
|
||||
enum mgmt_result mgmt_fe_create_client_session(uintptr_t lib_hndl,
|
||||
uint64_t client_id,
|
||||
uintptr_t user_ctx)
|
||||
uint64_t client_id,
|
||||
uintptr_t user_ctx)
|
||||
{
|
||||
struct mgmt_fe_client_ctx *client_ctx;
|
||||
struct mgmt_fe_client_session *session;
|
||||
@ -698,7 +670,7 @@ enum mgmt_result mgmt_fe_create_client_session(uintptr_t lib_hndl,
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
session = XCALLOC(MTYPE_MGMTD_FE_SESSION,
|
||||
sizeof(struct mgmt_fe_client_session));
|
||||
sizeof(struct mgmt_fe_client_session));
|
||||
assert(session);
|
||||
session->user_ctx = user_ctx;
|
||||
session->client_id = client_id;
|
||||
@ -759,24 +731,18 @@ static void mgmt_fe_destroy_client_sessions(uintptr_t lib_hndl)
|
||||
/*
|
||||
* Send UN/LOCK_DS_REQ to MGMTD for a specific Datastore DS.
|
||||
*/
|
||||
enum mgmt_result mgmt_fe_lock_ds(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
bool lock_ds)
|
||||
enum mgmt_result mgmt_fe_lock_ds(uintptr_t lib_hndl, uint64_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
bool lock_ds)
|
||||
{
|
||||
struct mgmt_fe_client_ctx *client_ctx;
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
client_ctx = (struct mgmt_fe_client_ctx *)lib_hndl;
|
||||
if (!client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
session = (struct mgmt_fe_client_session *)session_id;
|
||||
if (!session || session->client_ctx != client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
if (mgmt_fe_send_lockds_req(client_ctx, session, lock_ds, req_id,
|
||||
ds_id)
|
||||
!= 0)
|
||||
if (mgmt_fe_send_lockds_req(client_ctx, session_id, lock_ds, req_id,
|
||||
ds_id) != 0)
|
||||
return MGMTD_INTERNAL_ERROR;
|
||||
|
||||
return MGMTD_SUCCESS;
|
||||
@ -785,27 +751,22 @@ enum mgmt_result mgmt_fe_lock_ds(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
/*
|
||||
* Send SET_CONFIG_REQ to MGMTD for one or more config data(s).
|
||||
*/
|
||||
enum mgmt_result
|
||||
mgmt_fe_set_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangCfgDataReq **config_req, int num_reqs,
|
||||
bool implicit_commit, Mgmtd__DatastoreId dst_ds_id)
|
||||
enum mgmt_result mgmt_fe_set_config_data(uintptr_t lib_hndl,
|
||||
uint64_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangCfgDataReq **config_req,
|
||||
int num_reqs, bool implicit_commit,
|
||||
Mgmtd__DatastoreId dst_ds_id)
|
||||
{
|
||||
struct mgmt_fe_client_ctx *client_ctx;
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
client_ctx = (struct mgmt_fe_client_ctx *)lib_hndl;
|
||||
if (!client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
session = (struct mgmt_fe_client_session *)session_id;
|
||||
if (!session || session->client_ctx != client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
if (mgmt_fe_send_setcfg_req(client_ctx, session, req_id, ds_id,
|
||||
config_req, num_reqs, implicit_commit,
|
||||
dst_ds_id)
|
||||
!= 0)
|
||||
if (mgmt_fe_send_setcfg_req(client_ctx, session_id, req_id, ds_id,
|
||||
config_req, num_reqs, implicit_commit,
|
||||
dst_ds_id) != 0)
|
||||
return MGMTD_INTERNAL_ERROR;
|
||||
|
||||
return MGMTD_SUCCESS;
|
||||
@ -815,26 +776,21 @@ mgmt_fe_set_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
* Send SET_CONFIG_REQ to MGMTD for one or more config data(s).
|
||||
*/
|
||||
enum mgmt_result mgmt_fe_commit_config_data(uintptr_t lib_hndl,
|
||||
uintptr_t session_id,
|
||||
uint64_t req_id,
|
||||
Mgmtd__DatastoreId src_ds_id,
|
||||
Mgmtd__DatastoreId dst_ds_id,
|
||||
bool validate_only, bool abort)
|
||||
uint64_t session_id,
|
||||
uint64_t req_id,
|
||||
Mgmtd__DatastoreId src_ds_id,
|
||||
Mgmtd__DatastoreId dst_ds_id,
|
||||
bool validate_only, bool abort)
|
||||
{
|
||||
struct mgmt_fe_client_ctx *client_ctx;
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
client_ctx = (struct mgmt_fe_client_ctx *)lib_hndl;
|
||||
if (!client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
session = (struct mgmt_fe_client_session *)session_id;
|
||||
if (!session || session->client_ctx != client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
if (mgmt_fe_send_commitcfg_req(client_ctx, session, req_id, src_ds_id,
|
||||
dst_ds_id, validate_only, abort)
|
||||
!= 0)
|
||||
if (mgmt_fe_send_commitcfg_req(client_ctx, session_id, req_id,
|
||||
src_ds_id, dst_ds_id, validate_only,
|
||||
abort) != 0)
|
||||
return MGMTD_INTERNAL_ERROR;
|
||||
|
||||
return MGMTD_SUCCESS;
|
||||
@ -843,25 +799,20 @@ enum mgmt_result mgmt_fe_commit_config_data(uintptr_t lib_hndl,
|
||||
/*
|
||||
* Send GET_CONFIG_REQ to MGMTD for one or more config data item(s).
|
||||
*/
|
||||
enum mgmt_result
|
||||
mgmt_fe_get_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq * data_req[], int num_reqs)
|
||||
enum mgmt_result mgmt_fe_get_config_data(uintptr_t lib_hndl,
|
||||
uint64_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq *data_req[],
|
||||
int num_reqs)
|
||||
{
|
||||
struct mgmt_fe_client_ctx *client_ctx;
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
client_ctx = (struct mgmt_fe_client_ctx *)lib_hndl;
|
||||
if (!client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
session = (struct mgmt_fe_client_session *)session_id;
|
||||
if (!session || session->client_ctx != client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
if (mgmt_fe_send_getcfg_req(client_ctx, session, req_id, ds_id,
|
||||
data_req, num_reqs)
|
||||
!= 0)
|
||||
if (mgmt_fe_send_getcfg_req(client_ctx, session_id, req_id, ds_id,
|
||||
data_req, num_reqs) != 0)
|
||||
return MGMTD_INTERNAL_ERROR;
|
||||
|
||||
return MGMTD_SUCCESS;
|
||||
@ -870,25 +821,19 @@ mgmt_fe_get_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
/*
|
||||
* Send GET_DATA_REQ to MGMTD for one or more config data item(s).
|
||||
*/
|
||||
enum mgmt_result mgmt_fe_get_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq * data_req[],
|
||||
int num_reqs)
|
||||
enum mgmt_result mgmt_fe_get_data(uintptr_t lib_hndl, uint64_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq *data_req[],
|
||||
int num_reqs)
|
||||
{
|
||||
struct mgmt_fe_client_ctx *client_ctx;
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
client_ctx = (struct mgmt_fe_client_ctx *)lib_hndl;
|
||||
if (!client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
session = (struct mgmt_fe_client_session *)session_id;
|
||||
if (!session || session->client_ctx != client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
if (mgmt_fe_send_getdata_req(client_ctx, session, req_id, ds_id,
|
||||
data_req, num_reqs)
|
||||
!= 0)
|
||||
if (mgmt_fe_send_getdata_req(client_ctx, session_id, req_id, ds_id,
|
||||
data_req, num_reqs) != 0)
|
||||
return MGMTD_INTERNAL_ERROR;
|
||||
|
||||
return MGMTD_SUCCESS;
|
||||
@ -898,26 +843,19 @@ enum mgmt_result mgmt_fe_get_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
* Send NOTIFY_REGISTER_REQ to MGMTD daemon.
|
||||
*/
|
||||
enum mgmt_result
|
||||
mgmt_fe_register_yang_notify(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
bool register_req,
|
||||
Mgmtd__YangDataXPath * data_req[],
|
||||
int num_reqs)
|
||||
mgmt_fe_register_yang_notify(uintptr_t lib_hndl, uint64_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
bool register_req,
|
||||
Mgmtd__YangDataXPath *data_req[], int num_reqs)
|
||||
{
|
||||
struct mgmt_fe_client_ctx *client_ctx;
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
client_ctx = (struct mgmt_fe_client_ctx *)lib_hndl;
|
||||
if (!client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
session = (struct mgmt_fe_client_session *)session_id;
|
||||
if (!session || session->client_ctx != client_ctx)
|
||||
return MGMTD_INVALID_PARAM;
|
||||
|
||||
if (mgmt_fe_send_regnotify_req(client_ctx, session, req_id, ds_id,
|
||||
register_req, data_req, num_reqs)
|
||||
!= 0)
|
||||
if (mgmt_fe_send_regnotify_req(client_ctx, session_id, req_id, ds_id,
|
||||
register_req, data_req, num_reqs) != 0)
|
||||
return MGMTD_INTERNAL_ERROR;
|
||||
|
||||
return MGMTD_SUCCESS;
|
||||
@ -931,7 +869,7 @@ void mgmt_fe_client_lib_destroy(void)
|
||||
struct mgmt_fe_client_ctx *client_ctx = &mgmt_fe_client_ctx;
|
||||
|
||||
MGMTD_FE_CLIENT_DBG("Destroying MGMTD Frontend Client '%s'",
|
||||
client_ctx->client_params.name);
|
||||
client_ctx->client_params.name);
|
||||
|
||||
mgmt_fe_destroy_client_sessions((uintptr_t)client_ctx);
|
||||
msg_client_cleanup(&client_ctx->client);
|
||||
|
@ -202,9 +202,9 @@ extern enum mgmt_result mgmt_fe_destroy_client_session(uintptr_t lib_hndl,
|
||||
* Returns:
|
||||
* MGMTD_SUCCESS on success, MGMTD_* otherwise.
|
||||
*/
|
||||
extern enum mgmt_result
|
||||
mgmt_fe_lock_ds(uintptr_t lib_hndl, uintptr_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id, bool lock_ds);
|
||||
extern enum mgmt_result mgmt_fe_lock_ds(uintptr_t lib_hndl, uint64_t session_id,
|
||||
uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id, bool lock_ds);
|
||||
|
||||
/*
|
||||
* Send SET_CONFIG_REQ to MGMTD for one or more config data(s).
|
||||
@ -237,10 +237,10 @@ mgmt_fe_lock_ds(uintptr_t lib_hndl, uintptr_t session_id, uint64_t req_id,
|
||||
* MGMTD_SUCCESS on success, MGMTD_* otherwise.
|
||||
*/
|
||||
extern enum mgmt_result
|
||||
mgmt_fe_set_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangCfgDataReq **config_req, int num_req,
|
||||
bool implicit_commit, Mgmtd__DatastoreId dst_ds_id);
|
||||
mgmt_fe_set_config_data(uintptr_t lib_hndl, uint64_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangCfgDataReq **config_req, int num_req,
|
||||
bool implicit_commit, Mgmtd__DatastoreId dst_ds_id);
|
||||
|
||||
/*
|
||||
* Send SET_COMMMIT_REQ to MGMTD for one or more config data(s).
|
||||
@ -270,10 +270,10 @@ mgmt_fe_set_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
* MGMTD_SUCCESS on success, MGMTD_* otherwise.
|
||||
*/
|
||||
extern enum mgmt_result
|
||||
mgmt_fe_commit_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId src_ds_id,
|
||||
Mgmtd__DatastoreId dst_ds_id, bool validate_only,
|
||||
bool abort);
|
||||
mgmt_fe_commit_config_data(uintptr_t lib_hndl, uint64_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId src_ds_id,
|
||||
Mgmtd__DatastoreId dst_ds_id, bool validate_only,
|
||||
bool abort);
|
||||
|
||||
/*
|
||||
* Send GET_CONFIG_REQ to MGMTD for one or more config data item(s).
|
||||
@ -300,9 +300,9 @@ mgmt_fe_commit_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
* MGMTD_SUCCESS on success, MGMTD_* otherwise.
|
||||
*/
|
||||
extern enum mgmt_result
|
||||
mgmt_fe_get_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq **data_req, int num_reqs);
|
||||
mgmt_fe_get_config_data(uintptr_t lib_hndl, uint64_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq **data_req, int num_reqs);
|
||||
|
||||
/*
|
||||
* Send GET_DATA_REQ to MGMTD for one or more data item(s).
|
||||
@ -310,10 +310,11 @@ mgmt_fe_get_config_data(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
* Similar to get config request but supports getting data
|
||||
* from operational ds aka backend clients directly.
|
||||
*/
|
||||
extern enum mgmt_result
|
||||
mgmt_fe_get_data(uintptr_t lib_hndl, uintptr_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id, Mgmtd__YangGetDataReq **data_req,
|
||||
int num_reqs);
|
||||
extern enum mgmt_result mgmt_fe_get_data(uintptr_t lib_hndl,
|
||||
uint64_t session_id, uint64_t req_id,
|
||||
Mgmtd__DatastoreId ds_id,
|
||||
Mgmtd__YangGetDataReq **data_req,
|
||||
int num_reqs);
|
||||
|
||||
/*
|
||||
* Send NOTIFY_REGISTER_REQ to MGMTD daemon.
|
||||
@ -343,10 +344,10 @@ mgmt_fe_get_data(uintptr_t lib_hndl, uintptr_t session_id, uint64_t req_id,
|
||||
* MGMTD_SUCCESS on success, MGMTD_* otherwise.
|
||||
*/
|
||||
extern enum mgmt_result
|
||||
mgmt_fe_register_yang_notify(uintptr_t lib_hndl, uintptr_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
bool register_req,
|
||||
Mgmtd__YangDataXPath **data_req, int num_reqs);
|
||||
mgmt_fe_register_yang_notify(uintptr_t lib_hndl, uint64_t session_id,
|
||||
uint64_t req_id, Mgmtd__DatastoreId ds_id,
|
||||
bool register_req, Mgmtd__YangDataXPath **data_req,
|
||||
int num_reqs);
|
||||
|
||||
/*
|
||||
* Destroy library and cleanup everything.
|
||||
|
@ -1633,6 +1633,8 @@ struct vty *vty_new(void)
|
||||
new->pass_fd = -1;
|
||||
|
||||
if (mgmt_lib_hndl) {
|
||||
if (!mgmt_client_id_next)
|
||||
mgmt_client_id_next++;
|
||||
new->mgmt_client_id = mgmt_client_id_next++;
|
||||
if (mgmt_fe_create_client_session(
|
||||
mgmt_lib_hndl, new->mgmt_client_id,
|
||||
|
@ -218,8 +218,8 @@ struct vty {
|
||||
size_t frame_pos;
|
||||
char frame[1024];
|
||||
|
||||
uintptr_t mgmt_session_id;
|
||||
uint64_t mgmt_client_id;
|
||||
uint64_t mgmt_session_id; /* FE adapter identifies session w/ this */
|
||||
uint64_t mgmt_client_id; /* FE vty client identifies w/ this ID */
|
||||
uint64_t mgmt_req_id;
|
||||
bool mgmt_req_pending;
|
||||
bool mgmt_locked_candidate_ds;
|
||||
|
@ -256,10 +256,15 @@ mgmt_fe_find_session_by_client_id(struct mgmt_fe_client_adapter *adapter,
|
||||
struct mgmt_fe_session_ctx *session;
|
||||
|
||||
FOREACH_SESSION_IN_LIST (adapter, session) {
|
||||
if (session->client_id == client_id)
|
||||
if (session->client_id == client_id) {
|
||||
MGMTD_FE_ADAPTER_DBG("Found session-id %" PRIu64
|
||||
" using client-id %" PRIu64,
|
||||
session->session_id, client_id);
|
||||
return session;
|
||||
}
|
||||
}
|
||||
|
||||
MGMTD_FE_ADAPTER_DBG("Session not found using client-id %" PRIu64,
|
||||
client_id);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -416,7 +421,7 @@ static int mgmt_fe_send_setcfg_reply(struct mgmt_fe_session_ctx *session,
|
||||
fe_msg.setcfg_reply = &setcfg_reply;
|
||||
|
||||
MGMTD_FE_ADAPTER_DBG(
|
||||
"Sending SET_CONFIG_REPLY message to MGMTD Frontend client '%s'",
|
||||
"Sending SETCFG_REPLY message to MGMTD Frontend client '%s'",
|
||||
session->adapter->name);
|
||||
|
||||
if (implicit_commit) {
|
||||
@ -676,7 +681,7 @@ mgmt_fe_session_handle_lockds_req_msg(struct mgmt_fe_session_ctx *session,
|
||||
struct mgmt_ds_ctx *ds_ctx;
|
||||
|
||||
/*
|
||||
* Next check first if the SET_CONFIG_REQ is for Candidate DS
|
||||
* Next check first if the SETCFG_REQ is for Candidate DS
|
||||
* or not. Report failure if its not. MGMTD currently only
|
||||
* supports editing the Candidate DS.
|
||||
*/
|
||||
@ -745,7 +750,7 @@ mgmt_fe_session_handle_setcfg_req_msg(struct mgmt_fe_session_ctx *session,
|
||||
gettimeofday(&session->adapter->setcfg_stats.last_start, NULL);
|
||||
|
||||
/*
|
||||
* Next check first if the SET_CONFIG_REQ is for Candidate DS
|
||||
* Next check first if the SETCFG_REQ is for Candidate DS
|
||||
* or not. Report failure if its not. MGMTD currently only
|
||||
* supports editing the Candidate DS.
|
||||
*/
|
||||
@ -903,7 +908,7 @@ mgmt_fe_session_handle_getcfg_req_msg(struct mgmt_fe_session_ctx *session,
|
||||
}
|
||||
|
||||
/*
|
||||
* Next check first if the SET_CONFIG_REQ is for Candidate DS
|
||||
* Next check first if the GETCFG_REQ is for Candidate DS
|
||||
* or not. Report failure if its not. MGMTD currently only
|
||||
* supports editing the Candidate DS.
|
||||
*/
|
||||
@ -1116,7 +1121,7 @@ static int mgmt_fe_session_handle_commit_config_req_msg(
|
||||
}
|
||||
|
||||
/*
|
||||
* Next check first if the SET_CONFIG_REQ is for Candidate DS
|
||||
* Next check first if the COMMCFG_REQ is for Candidate DS
|
||||
* or not. Report failure if its not. MGMTD currently only
|
||||
* supports editing the Candidate DS.
|
||||
*/
|
||||
@ -1144,8 +1149,8 @@ static int mgmt_fe_session_handle_commit_config_req_msg(
|
||||
"Failed to create a Configuration session!");
|
||||
return 0;
|
||||
}
|
||||
MGMTD_FE_ADAPTER_DBG("Created txn %" PRIu64
|
||||
" for session %" PRIu64
|
||||
MGMTD_FE_ADAPTER_DBG("Created txn-id: %" PRIu64
|
||||
" for session-id %" PRIu64
|
||||
" for COMMIT-CFG-REQ",
|
||||
session->cfg_txn_id, session->session_id);
|
||||
}
|
||||
@ -1202,8 +1207,8 @@ mgmt_fe_adapter_handle_msg(struct mgmt_fe_client_adapter *adapter,
|
||||
*/
|
||||
switch ((int)fe_msg->message_case) {
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_REGISTER_REQ:
|
||||
MGMTD_FE_ADAPTER_DBG("Got Register Req Msg from '%s'",
|
||||
fe_msg->register_req->client_name);
|
||||
MGMTD_FE_ADAPTER_DBG("Got REGISTER_REQ from '%s'",
|
||||
fe_msg->register_req->client_name);
|
||||
|
||||
if (strlen(fe_msg->register_req->client_name)) {
|
||||
strlcpy(adapter->name,
|
||||
@ -1217,9 +1222,9 @@ mgmt_fe_adapter_handle_msg(struct mgmt_fe_client_adapter *adapter,
|
||||
&& fe_msg->session_req->id_case
|
||||
== MGMTD__FE_SESSION_REQ__ID_CLIENT_CONN_ID) {
|
||||
MGMTD_FE_ADAPTER_DBG(
|
||||
"Got Session Create Req Msg for client-id %llu from '%s'",
|
||||
(unsigned long long)
|
||||
fe_msg->session_req->client_conn_id,
|
||||
"Got SESSION_REQ (create) for client-id %" PRIu64
|
||||
" from '%s'",
|
||||
fe_msg->session_req->client_conn_id,
|
||||
adapter->name);
|
||||
|
||||
session = mgmt_fe_create_session(
|
||||
@ -1231,10 +1236,9 @@ mgmt_fe_adapter_handle_msg(struct mgmt_fe_client_adapter *adapter,
|
||||
&& fe_msg->session_req->id_case
|
||||
== MGMTD__FE_SESSION_REQ__ID_SESSION_ID) {
|
||||
MGMTD_FE_ADAPTER_DBG(
|
||||
"Got Session Destroy Req Msg for session-id %llu from '%s'",
|
||||
(unsigned long long)
|
||||
fe_msg->session_req->session_id,
|
||||
adapter->name);
|
||||
"Got SESSION_REQ (destroy) for session-id %" PRIu64
|
||||
"from '%s'",
|
||||
fe_msg->session_req->session_id, adapter->name);
|
||||
|
||||
session = mgmt_session_id2ctx(
|
||||
fe_msg->session_req->session_id);
|
||||
@ -1247,11 +1251,11 @@ mgmt_fe_adapter_handle_msg(struct mgmt_fe_client_adapter *adapter,
|
||||
session = mgmt_session_id2ctx(
|
||||
fe_msg->lockds_req->session_id);
|
||||
MGMTD_FE_ADAPTER_DBG(
|
||||
"Got %sockDS Req Msg for DS:%d for session-id %llx from '%s'",
|
||||
fe_msg->lockds_req->lock ? "L" : "Unl",
|
||||
"Got %sLOCKDS_REQ for DS:%d for session-id %" PRIu64
|
||||
" from '%s'",
|
||||
fe_msg->lockds_req->lock ? "" : "UN",
|
||||
fe_msg->lockds_req->ds_id,
|
||||
(unsigned long long)fe_msg->lockds_req->session_id,
|
||||
adapter->name);
|
||||
fe_msg->lockds_req->session_id, adapter->name);
|
||||
mgmt_fe_session_handle_lockds_req_msg(
|
||||
session, fe_msg->lockds_req);
|
||||
break;
|
||||
@ -1260,12 +1264,12 @@ mgmt_fe_adapter_handle_msg(struct mgmt_fe_client_adapter *adapter,
|
||||
fe_msg->setcfg_req->session_id);
|
||||
session->adapter->setcfg_stats.set_cfg_count++;
|
||||
MGMTD_FE_ADAPTER_DBG(
|
||||
"Got Set Config Req Msg (%d Xpaths, Implicit:%c) on DS:%d for session-id %llu from '%s'",
|
||||
"Got SETCFG_REQ (%d Xpaths, Implicit:%c) on DS:%d for session-id %" PRIu64
|
||||
" from '%s'",
|
||||
(int)fe_msg->setcfg_req->n_data,
|
||||
fe_msg->setcfg_req->implicit_commit ? 'T':'F',
|
||||
fe_msg->setcfg_req->implicit_commit ? 'T' : 'F',
|
||||
fe_msg->setcfg_req->ds_id,
|
||||
(unsigned long long)fe_msg->setcfg_req->session_id,
|
||||
adapter->name);
|
||||
fe_msg->setcfg_req->session_id, adapter->name);
|
||||
|
||||
mgmt_fe_session_handle_setcfg_req_msg(
|
||||
session, fe_msg->setcfg_req);
|
||||
@ -1274,12 +1278,12 @@ mgmt_fe_adapter_handle_msg(struct mgmt_fe_client_adapter *adapter,
|
||||
session = mgmt_session_id2ctx(
|
||||
fe_msg->commcfg_req->session_id);
|
||||
MGMTD_FE_ADAPTER_DBG(
|
||||
"Got Commit Config Req Msg for src-DS:%d dst-DS:%d (Abort:%c) on session-id %llu from '%s'",
|
||||
"Got COMMCFG_REQ for src-DS:%d dst-DS:%d (Abort:%c) on session-id %" PRIu64
|
||||
" from '%s'",
|
||||
fe_msg->commcfg_req->src_ds_id,
|
||||
fe_msg->commcfg_req->dst_ds_id,
|
||||
fe_msg->commcfg_req->abort ? 'T':'F',
|
||||
(unsigned long long)fe_msg->commcfg_req->session_id,
|
||||
adapter->name);
|
||||
fe_msg->commcfg_req->abort ? 'T' : 'F',
|
||||
fe_msg->commcfg_req->session_id, adapter->name);
|
||||
mgmt_fe_session_handle_commit_config_req_msg(
|
||||
session, fe_msg->commcfg_req);
|
||||
break;
|
||||
@ -1287,11 +1291,11 @@ mgmt_fe_adapter_handle_msg(struct mgmt_fe_client_adapter *adapter,
|
||||
session = mgmt_session_id2ctx(
|
||||
fe_msg->getcfg_req->session_id);
|
||||
MGMTD_FE_ADAPTER_DBG(
|
||||
"Got Get-Config Req Msg for DS:%d (xpaths: %d) on session-id %llu from '%s'",
|
||||
"Got GETCFG_REQ for DS:%d (xpaths: %d) on session-id %" PRIu64
|
||||
" from '%s'",
|
||||
fe_msg->getcfg_req->ds_id,
|
||||
(int)fe_msg->getcfg_req->n_data,
|
||||
(unsigned long long)fe_msg->getcfg_req->session_id,
|
||||
adapter->name);
|
||||
fe_msg->getcfg_req->session_id, adapter->name);
|
||||
mgmt_fe_session_handle_getcfg_req_msg(
|
||||
session, fe_msg->getcfg_req);
|
||||
break;
|
||||
@ -1299,16 +1303,19 @@ mgmt_fe_adapter_handle_msg(struct mgmt_fe_client_adapter *adapter,
|
||||
session = mgmt_session_id2ctx(
|
||||
fe_msg->getdata_req->session_id);
|
||||
MGMTD_FE_ADAPTER_DBG(
|
||||
"Got Get-Data Req Msg for DS:%d (xpaths: %d) on session-id %llu from '%s'",
|
||||
"Got GETDATA_REQ for DS:%d (xpaths: %d) on session-id %" PRIu64
|
||||
" from '%s'",
|
||||
fe_msg->getdata_req->ds_id,
|
||||
(int)fe_msg->getdata_req->n_data,
|
||||
(unsigned long long)fe_msg->getdata_req->session_id,
|
||||
adapter->name);
|
||||
fe_msg->getdata_req->session_id, adapter->name);
|
||||
mgmt_fe_session_handle_getdata_req_msg(
|
||||
session, fe_msg->getdata_req);
|
||||
break;
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_NOTIFY_DATA_REQ:
|
||||
case MGMTD__FE_MESSAGE__MESSAGE_REGNOTIFY_REQ:
|
||||
MGMTD_FE_ADAPTER_ERR(
|
||||
"Got unhandled message of type %u from '%s'",
|
||||
fe_msg->message_case, adapter->name);
|
||||
/*
|
||||
* TODO: Add handling code in future.
|
||||
*/
|
||||
@ -1361,8 +1368,7 @@ void mgmt_fe_adapter_lock(struct mgmt_fe_client_adapter *adapter)
|
||||
adapter->refcount++;
|
||||
}
|
||||
|
||||
extern void
|
||||
mgmt_fe_adapter_unlock(struct mgmt_fe_client_adapter **adapter)
|
||||
extern void mgmt_fe_adapter_unlock(struct mgmt_fe_client_adapter **adapter)
|
||||
{
|
||||
struct mgmt_fe_client_adapter *a = *adapter;
|
||||
assert(a && a->refcount);
|
||||
|
Loading…
Reference in New Issue
Block a user