forked from acouzens/open5gs
[PFCP] Support PFCP advertise address in F-SEID
This commit is contained in:
parent
cd485944cb
commit
928a80ef26
|
@ -152,11 +152,13 @@ int ogs_pfcp_f_seid_to_sockaddr(
|
|||
return OGS_OK;
|
||||
}
|
||||
|
||||
int ogs_pfcp_sockaddr_to_f_seid(
|
||||
ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6,
|
||||
ogs_pfcp_f_seid_t *f_seid, int *len)
|
||||
int ogs_pfcp_sockaddr_to_f_seid(ogs_pfcp_f_seid_t *f_seid, int *len)
|
||||
{
|
||||
const int hdr_len = 9;
|
||||
ogs_sockaddr_t *advertise = ogs_pfcp_self()->pfcp_advertise;
|
||||
ogs_sockaddr_t *advertise6 = ogs_pfcp_self()->pfcp_advertise6;
|
||||
ogs_sockaddr_t *addr = advertise ? advertise : ogs_pfcp_self()->pfcp_addr;
|
||||
ogs_sockaddr_t *addr6 = advertise6 ? advertise6 : ogs_pfcp_self()->pfcp_addr6;
|
||||
|
||||
ogs_assert(f_seid);
|
||||
|
||||
|
|
|
@ -32,9 +32,7 @@ int ogs_pfcp_sockaddr_to_node_id(ogs_pfcp_node_id_t *node_id, int *len);
|
|||
|
||||
int ogs_pfcp_f_seid_to_sockaddr(
|
||||
ogs_pfcp_f_seid_t *f_seid, uint16_t port, ogs_sockaddr_t **list);
|
||||
int ogs_pfcp_sockaddr_to_f_seid(
|
||||
ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6,
|
||||
ogs_pfcp_f_seid_t *f_seid, int *len);
|
||||
int ogs_pfcp_sockaddr_to_f_seid(ogs_pfcp_f_seid_t *f_seid, int *len);
|
||||
int ogs_pfcp_f_seid_to_ip(ogs_pfcp_f_seid_t *f_seid, ogs_ip_t *ip);
|
||||
|
||||
int ogs_pfcp_sockaddr_to_f_teid(
|
||||
|
|
|
@ -59,9 +59,7 @@ ogs_pkbuf_t *sgwc_sxa_build_session_establishment_request(
|
|||
req->node_id.len = len;
|
||||
|
||||
/* F-SEID */
|
||||
rv = ogs_pfcp_sockaddr_to_f_seid(
|
||||
ogs_pfcp_self()->pfcp_addr, ogs_pfcp_self()->pfcp_addr6,
|
||||
&f_seid, &len);
|
||||
rv = ogs_pfcp_sockaddr_to_f_seid(&f_seid, &len);
|
||||
if (rv != OGS_OK) {
|
||||
ogs_error("ogs_pfcp_sockaddr_to_f_seid() failed");
|
||||
ogs_free(pfcp_message);
|
||||
|
|
|
@ -58,9 +58,7 @@ ogs_pkbuf_t *sgwu_sxa_build_session_establishment_response(uint8_t type,
|
|||
rsp->cause.u8 = OGS_PFCP_CAUSE_REQUEST_ACCEPTED;
|
||||
|
||||
/* F-SEID */
|
||||
rv = ogs_pfcp_sockaddr_to_f_seid(
|
||||
ogs_pfcp_self()->pfcp_addr, ogs_pfcp_self()->pfcp_addr6,
|
||||
&f_seid, &len);
|
||||
rv = ogs_pfcp_sockaddr_to_f_seid(&f_seid, &len);
|
||||
if (rv != OGS_OK) {
|
||||
ogs_error("ogs_pfcp_sockaddr_to_f_seid() failed");
|
||||
ogs_free(pfcp_message);
|
||||
|
|
|
@ -68,9 +68,7 @@ ogs_pkbuf_t *smf_n4_build_session_establishment_request(
|
|||
req->node_id.len = len;
|
||||
|
||||
/* F-SEID */
|
||||
rv = ogs_pfcp_sockaddr_to_f_seid(
|
||||
ogs_pfcp_self()->pfcp_addr, ogs_pfcp_self()->pfcp_addr6,
|
||||
&f_seid, &len);
|
||||
rv = ogs_pfcp_sockaddr_to_f_seid(&f_seid, &len);
|
||||
if (rv != OGS_OK) {
|
||||
ogs_error("ogs_pfcp_sockaddr_to_f_seid() failed");
|
||||
ogs_free(pfcp_message);
|
||||
|
|
|
@ -54,9 +54,7 @@ ogs_pkbuf_t *upf_n4_build_session_establishment_response(uint8_t type,
|
|||
rsp->cause.u8 = OGS_PFCP_CAUSE_REQUEST_ACCEPTED;
|
||||
|
||||
/* F-SEID */
|
||||
ogs_pfcp_sockaddr_to_f_seid(
|
||||
ogs_pfcp_self()->pfcp_addr, ogs_pfcp_self()->pfcp_addr6,
|
||||
&f_seid, &len);
|
||||
ogs_pfcp_sockaddr_to_f_seid(&f_seid, &len);
|
||||
f_seid.seid = htobe64(sess->upf_n4_seid);
|
||||
rsp->up_f_seid.presence = 1;
|
||||
rsp->up_f_seid.data = &f_seid;
|
||||
|
|
Loading…
Reference in New Issue