diff --git a/lib/gtp/v2/conv.c b/lib/gtp/v2/conv.c index bfb01a2dc..3b61a7ca3 100644 --- a/lib/gtp/v2/conv.c +++ b/lib/gtp/v2/conv.c @@ -153,31 +153,3 @@ int ogs_gtp2_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp2_f_teid_t *f_teid, int *len) return OGS_OK; } - -int ogs_gtp2_paa_to_ip(ogs_paa_t *paa, ogs_ip_t *ip) -{ - ogs_assert(paa); - ogs_assert(ip); - - memset(ip, 0, sizeof *ip); - - if (paa->session_type == OGS_PDU_SESSION_TYPE_IPV4V6) { - ip->ipv4 = 1; - ip->addr = paa->both.addr; - ip->ipv6 = 1; - memcpy(ip->addr6, paa->both.addr6, OGS_IPV6_LEN); - } else if (paa->session_type == OGS_PDU_SESSION_TYPE_IPV4) { - ip->ipv4 = 1; - ip->ipv6 = 0; - ip->addr = paa->addr; - } else if (paa->session_type == OGS_PDU_SESSION_TYPE_IPV6) { - ip->ipv4 = 0; - ip->ipv6 = 1; - memcpy(ip->addr6, paa->addr6, OGS_IPV6_LEN); - } else { - ogs_error("No IPv4 or IPv6"); - return OGS_ERROR; - } - - return OGS_OK; -} diff --git a/lib/gtp/v2/conv.h b/lib/gtp/v2/conv.h index e5943a981..655e574e1 100644 --- a/lib/gtp/v2/conv.h +++ b/lib/gtp/v2/conv.h @@ -35,8 +35,6 @@ int ogs_gtp2_sockaddr_to_f_teid(ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6, int ogs_gtp2_f_teid_to_ip(ogs_gtp2_f_teid_t *f_teid, ogs_ip_t *ip); int ogs_gtp2_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp2_f_teid_t *f_teid, int *len); -int ogs_gtp2_paa_to_ip(ogs_paa_t *paa, ogs_ip_t *ip); - #ifdef __cplusplus } #endif diff --git a/lib/proto/conv.c b/lib/proto/conv.c index 62a5afa05..bfebd61ba 100644 --- a/lib/proto/conv.c +++ b/lib/proto/conv.c @@ -40,3 +40,32 @@ void ogs_extract_digit_from_string(char *digit, char *string) *digit = 0; } + +int ogs_paa_to_ip(const ogs_paa_t *paa, ogs_ip_t *ip) +{ + ogs_assert(paa); + ogs_assert(ip); + + memset(ip, 0, sizeof *ip); + + if (paa->session_type == OGS_PDU_SESSION_TYPE_IPV4V6) { + ip->ipv4 = 1; + ip->addr = paa->both.addr; + ip->ipv6 = 1; + memcpy(ip->addr6, paa->both.addr6, OGS_IPV6_LEN); + } else if (paa->session_type == OGS_PDU_SESSION_TYPE_IPV4) { + ip->ipv4 = 1; + ip->ipv6 = 0; + ip->addr = paa->addr; + } else if (paa->session_type == OGS_PDU_SESSION_TYPE_IPV6) { + ip->ipv4 = 0; + ip->ipv6 = 1; + memcpy(ip->addr6, paa->addr6, OGS_IPV6_LEN); + } else { + ogs_error("No IPv4 or IPv6"); + return OGS_ERROR; + } + + return OGS_OK; +} + diff --git a/lib/proto/conv.h b/lib/proto/conv.h index 7f7578db5..ec16beace 100644 --- a/lib/proto/conv.h +++ b/lib/proto/conv.h @@ -30,6 +30,8 @@ extern "C" { void ogs_extract_digit_from_string(char *digit, char *string); +int ogs_paa_to_ip(const ogs_paa_t *paa, ogs_ip_t *ip); + #ifdef __cplusplus } #endif diff --git a/src/mme/mme-s11-handler.c b/src/mme/mme-s11-handler.c index a2477cbb7..0d140253d 100644 --- a/src/mme/mme-s11-handler.c +++ b/src/mme/mme-s11-handler.c @@ -376,7 +376,7 @@ void mme_s11_handle_create_session_response( rsp->pdn_address_allocation.len); session->session_type = session->paa.session_type; ogs_assert(OGS_OK == - ogs_gtp2_paa_to_ip(&session->paa, &session->ue_ip)); + ogs_paa_to_ip(&session->paa, &session->ue_ip)); } /* ePCO */ diff --git a/src/smf/gn-build.c b/src/smf/gn-build.c index 02bd52482..d05b4e177 100644 --- a/src/smf/gn-build.c +++ b/src/smf/gn-build.c @@ -174,7 +174,7 @@ ogs_pkbuf_t *smf_gn_build_create_pdp_context_response( rsp->charging_id.u32 = sess->charging.id; /* End User Address */ - rv = ogs_gtp2_paa_to_ip(&sess->session.paa, &ip_eua); + rv = ogs_paa_to_ip(&sess->session.paa, &ip_eua); rv = ogs_gtp1_ip_to_eua(sess->session.session_type, &ip_eua, &eua, &eua_len); rsp->end_user_address.presence = 1; diff --git a/src/smf/s5c-handler.c b/src/smf/s5c-handler.c index ea6cf8d41..857c473d6 100644 --- a/src/smf/s5c-handler.c +++ b/src/smf/s5c-handler.c @@ -247,7 +247,7 @@ uint8_t smf_s5c_handle_create_session_request( /* Initially Set Session Type from UE */ sess->session.session_type = sess->ue_session_type; - rv = ogs_gtp2_paa_to_ip(paa, &sess->session.ue_ip); + rv = ogs_paa_to_ip(paa, &sess->session.ue_ip); ogs_assert(rv == OGS_OK); /* Set UE IP Address */