fix PFCP Session Mod: Update FAR

Fix parsing of the Update FAR information so that a Session Modification
Request properly causes a GTP action to become active:

Add missing forw_params_present = true, and copy the information from
the incoming message instead of the current state.

Related: SYS#6192
Change-Id: I2a2c015d5615bb461b4d7b476a7c9830dc8e130f
This commit is contained in:
Neels Janosch Hofmeyr
2022-12-03 04:48:52 +01:00
committed by neels
parent d059391125
commit 1a341ee418

View File

@@ -257,22 +257,23 @@ static void far_upd(struct far *far, const struct osmo_pfcp_ie_upd_far *upd)
if (upd->upd_forw_params_present) {
const struct osmo_pfcp_ie_upd_forw_params *u = &upd->upd_forw_params;
struct osmo_pfcp_ie_forw_params *p = &far->desc.forw_params;
far->desc.forw_params_present = true;
if (u->destination_iface_present)
p->destination_iface = u->destination_iface;
if (u->network_inst_present) {
p->network_inst = p->network_inst;
p->network_inst = u->network_inst;
p->network_inst_present = true;
}
if (u->outer_header_creation_present) {
p->outer_header_creation = p->outer_header_creation;
p->outer_header_creation = u->outer_header_creation;
p->outer_header_creation_present = true;
}
if (u->linked_te_id_present) {
p->linked_te_id = p->linked_te_id;
p->linked_te_id = u->linked_te_id;
p->linked_te_id_present = true;
}
if (u->destination_iface_type_present) {
p->destination_iface_type = p->destination_iface_type;
p->destination_iface_type = u->destination_iface_type;
p->destination_iface_type_present = true;
}
}