[SCP] Support of Indirect Communication

This commit is contained in:
Sukchan Lee
2022-07-16 13:27:18 +09:00
parent 1518a4f334
commit 5e18b2bd13
128 changed files with 4284 additions and 777 deletions

View File

@@ -68,13 +68,12 @@ bool ogs_sbi_send(ogs_sbi_nf_instance_t *nf_instance,
ogs_freeaddrinfo(addr);
}
/* ogs_sbi_xact_remove() will call ogs_sbi_request_free()
* As such, we'll use ogs_sbi_client_send_reqmem_persistent() */
ogs_expect_or_return_val(true ==
ogs_sbi_client_send_request(
ogs_sbi_scp_send_reqmem_persistent(
client, client_cb, request, xact), false);
/* Prevent ogs_sbi_request_free() in ogs_sbi_xact_remove() */
xact->request = NULL;
return true;
}
@@ -125,6 +124,23 @@ bool ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact,
return false;
}
bool ogs_nnrf_nfm_send_nf_register(
ogs_sbi_nf_instance_t *nf_instance, ogs_sbi_request_t *(*build)(void))
{
ogs_sbi_request_t *request = NULL;
ogs_sbi_client_t *client = NULL;
ogs_assert(nf_instance);
client = nf_instance->client;
ogs_assert(client);
ogs_assert(build);
request = (*build)();
ogs_expect_or_return_val(request, false);
return ogs_sbi_scp_send_request(client, client->cb, request, nf_instance);
}
bool ogs_nnrf_nfm_send_nf_update(ogs_sbi_nf_instance_t *nf_instance)
{
ogs_sbi_request_t *request = NULL;
@@ -137,8 +153,7 @@ bool ogs_nnrf_nfm_send_nf_update(ogs_sbi_nf_instance_t *nf_instance)
request = ogs_nnrf_nfm_build_update();
ogs_expect_or_return_val(request, false);
return ogs_sbi_client_send_request(
client, client->cb, request, nf_instance);
return ogs_sbi_scp_send_request(client, client->cb, request, nf_instance);
}
bool ogs_nnrf_nfm_send_nf_de_register(ogs_sbi_nf_instance_t *nf_instance)
@@ -153,8 +168,7 @@ bool ogs_nnrf_nfm_send_nf_de_register(ogs_sbi_nf_instance_t *nf_instance)
request = ogs_nnrf_nfm_build_de_register();
ogs_expect_or_return_val(request, false);
return ogs_sbi_client_send_request(
client, client->cb, request, nf_instance);
return ogs_sbi_scp_send_request(client, client->cb, request, nf_instance);
}
bool ogs_nnrf_nfm_send_nf_status_subscribe(ogs_sbi_client_t *client,
@@ -180,7 +194,7 @@ bool ogs_nnrf_nfm_send_nf_status_subscribe(ogs_sbi_client_t *client,
request = ogs_nnrf_nfm_build_status_subscribe(subscription);
ogs_expect_or_return_val(request, false);
return ogs_sbi_client_send_request(
return ogs_sbi_scp_send_request(
client, client->cb, request, subscription);
}
@@ -191,13 +205,14 @@ bool ogs_nnrf_nfm_send_nf_status_unsubscribe(
ogs_sbi_client_t *client = NULL;
ogs_assert(subscription);
client = subscription->client;
ogs_assert(client);
request = ogs_nnrf_nfm_build_status_unsubscribe(subscription);
ogs_expect_or_return_val(request, false);
return ogs_sbi_client_send_request(
client = subscription->client;
ogs_assert(client);
return ogs_sbi_scp_send_request(
client, client->cb, request, subscription);
}
@@ -208,15 +223,15 @@ bool ogs_nnrf_disc_send_nf_discover(ogs_sbi_nf_instance_t *nf_instance,
ogs_sbi_request_t *request = NULL;
ogs_assert(nf_instance);
ogs_assert(nf_instance->nf_type);
client = nf_instance->client;
ogs_assert(client);
ogs_assert(ogs_sbi_self()->nf_instance);
request = ogs_nnrf_disc_build_discover(
target_nf_type, ogs_sbi_self()->nf_instance->nf_type);
ogs_expect_or_return_val(request, false);
client = nf_instance->client;
ogs_assert(client);
return ogs_sbi_client_send_request(client, client->cb, request, data);
}