travelping / vpp

5G User Plane Function (UPF) based on VPP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Port numbers in SDF filters are swapped between src and dst for DL traffic

fdangtran opened this issue · comments

For DL traffic, a SDF filter such as:
permit out ip from 0.0.0.0/0 102 to assigned 53
is handled as if it was:
permit out ip from 0.0.0.0/0 53 to assigned 102
A copy-and-paste error in lines 1477-78 ?

vpp/src/plugins/upf/upf_pfcp.c

Lines 1461 to 1481 in 85c09c8

switch (pdr->pdi.src_intf)
{
case SRC_INTF_ACCESS:
ip_assign_address (UPF_ACL_FIELD_DST, IPFILTER_RULE_FIELD_SRC, is_ip4,
pdr, rule, acl);
ip_assign_address (UPF_ACL_FIELD_SRC, IPFILTER_RULE_FIELD_DST, is_ip4,
pdr, rule, acl);
ip_assign_port (UPF_ACL_FIELD_DST, IPFILTER_RULE_FIELD_SRC, rule, acl);
ip_assign_port (UPF_ACL_FIELD_SRC, IPFILTER_RULE_FIELD_DST, rule, acl);
break;
default:
ip_assign_address (UPF_ACL_FIELD_SRC, IPFILTER_RULE_FIELD_SRC, is_ip4,
pdr, rule, acl);
ip_assign_address (UPF_ACL_FIELD_DST, IPFILTER_RULE_FIELD_DST, is_ip4,
pdr, rule, acl);
ip_assign_port (UPF_ACL_FIELD_DST, IPFILTER_RULE_FIELD_SRC, rule, acl);
ip_assign_port (UPF_ACL_FIELD_SRC, IPFILTER_RULE_FIELD_DST, rule, acl);
break;
}
}

Yes, that looks wrong.