[BSF] Handle Ipv4FrameRouteList, save it into context

This commit is contained in:
mitmitmitm 2023-01-18 12:17:44 +01:00 committed by Sukchan Lee
parent 337a4e5159
commit 88209f52df
3 changed files with 31 additions and 0 deletions

View File

@ -188,6 +188,9 @@ void bsf_sess_remove(bsf_sess_t *sess)
ogs_free(sess->ipv6prefix_string);
}
OpenAPI_clear_and_free_string_list(sess->ipv4_frame_route_list);
OpenAPI_clear_and_free_string_list(sess->ipv6_frame_route_list);
ogs_assert(sess->dnn);
ogs_free(sess->dnn);

View File

@ -52,6 +52,9 @@ typedef struct bsf_sess_s {
char *ipv4addr_string;
char *ipv6prefix_string;
OpenAPI_list_t *ipv4_frame_route_list;
OpenAPI_list_t *ipv6_frame_route_list;
uint32_t ipv4addr;
struct {
uint8_t len;

View File

@ -103,6 +103,31 @@ bool bsf_nbsf_management_handle_pcf_binding(
ogs_assert(sess->pcf_fqdn);
}
if (RecvPcfBinding->ipv4_frame_route_list) {
OpenAPI_lnode_t *node = NULL;
OpenAPI_clear_and_free_string_list(sess->ipv4_frame_route_list);
sess->ipv4_frame_route_list = OpenAPI_list_create();
OpenAPI_list_for_each(RecvPcfBinding->ipv4_frame_route_list, node) {
if (!node->data)
continue;
OpenAPI_list_add(sess->ipv4_frame_route_list, ogs_strdup(node->data));
}
}
if (RecvPcfBinding->ipv6_frame_route_list) {
OpenAPI_lnode_t *node = NULL;
OpenAPI_clear_and_free_string_list(sess->ipv6_frame_route_list);
sess->ipv6_frame_route_list = OpenAPI_list_create();
OpenAPI_list_for_each(RecvPcfBinding->ipv6_frame_route_list, node) {
if (!node->data)
continue;
OpenAPI_list_add(sess->ipv6_frame_route_list, ogs_strdup(node->data));
}
}
sess->s_nssai.sst = RecvPcfBinding->snssai->sst;
sess->s_nssai.sd =
ogs_s_nssai_sd_from_string(RecvPcfBinding->snssai->sd);