[GTPU] IPv6 RS/RA with QFI Extended Header (#1506)
This commit is contained in:
parent
b558da30c6
commit
3508e09a41
|
@ -2057,6 +2057,16 @@ void smf_sess_create_cp_up_data_forwarding(smf_sess_t *sess)
|
||||||
ogs_pfcp_pdr_associate_far(up2cp_pdr, up2cp_far);
|
ogs_pfcp_pdr_associate_far(up2cp_pdr, up2cp_far);
|
||||||
|
|
||||||
up2cp_far->apply_action = OGS_PFCP_APPLY_ACTION_FORW;
|
up2cp_far->apply_action = OGS_PFCP_APPLY_ACTION_FORW;
|
||||||
|
|
||||||
|
if (qos_flow->qer && qos_flow->qfi) {
|
||||||
|
/* To match the PDI of UP2CP_PDR(from ff02::2/128 to assigned)
|
||||||
|
* Router-Solicitation has QFI in the Extended Header */
|
||||||
|
up2cp_pdr->qfi = qos_flow->qfi;
|
||||||
|
|
||||||
|
/* When UPF sends router advertisement to gNB,
|
||||||
|
* it includes QFI in extension header */
|
||||||
|
ogs_pfcp_pdr_associate_qer(cp2up_pdr, qos_flow->qer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void smf_sess_delete_cp_up_data_forwarding(smf_sess_t *sess)
|
void smf_sess_delete_cp_up_data_forwarding(smf_sess_t *sess)
|
||||||
|
|
|
@ -149,7 +149,7 @@ void testgtpu_recv(test_ue_t *test_ue, ogs_pkbuf_t *pkbuf)
|
||||||
found:
|
found:
|
||||||
ogs_assert(sess);
|
ogs_assert(sess);
|
||||||
|
|
||||||
ip6_h = pkbuf->data + OGS_GTPV1U_HEADER_LEN;
|
ip6_h = pkbuf->data + ogs_gtpu_header_len(pkbuf);
|
||||||
ogs_assert(ip6_h);
|
ogs_assert(ip6_h);
|
||||||
if (ip6_h->ip6_nxt == IPPROTO_ICMPV6) {
|
if (ip6_h->ip6_nxt == IPPROTO_ICMPV6) {
|
||||||
struct nd_router_advert *advert_h = (struct nd_router_advert *)
|
struct nd_router_advert *advert_h = (struct nd_router_advert *)
|
||||||
|
@ -384,10 +384,11 @@ int test_gtpu_send_slacc_rs(ogs_socknode_t *node, test_bearer_t *bearer)
|
||||||
if (bearer->qfi) {
|
if (bearer->qfi) {
|
||||||
gtp_hdesc.teid = sess->upf_n3_teid;
|
gtp_hdesc.teid = sess->upf_n3_teid;
|
||||||
|
|
||||||
/* CHECK: I guess that Router Soliciation does not include QFI in 5G Core */
|
/*
|
||||||
#if 0
|
* Discussion #1506
|
||||||
|
* Router Soliciation should include QFI in 5G Core
|
||||||
|
*/
|
||||||
ext_hdesc.qos_flow_identifier = bearer->qfi;
|
ext_hdesc.qos_flow_identifier = bearer->qfi;
|
||||||
#endif
|
|
||||||
|
|
||||||
} else if (bearer->ebi) {
|
} else if (bearer->ebi) {
|
||||||
gtp_hdesc.teid = bearer->sgw_s1u_teid;
|
gtp_hdesc.teid = bearer->sgw_s1u_teid;
|
||||||
|
|
Loading…
Reference in New Issue