@@ -931,6 +931,7 @@ static void __skb_flow_bpf_to_target(const struct bpf_flow_keys *flow_keys,
931
931
struct flow_dissector * flow_dissector ,
932
932
void * target_container )
933
933
{
934
+ struct flow_dissector_key_ports_range * key_ports_range = NULL ;
934
935
struct flow_dissector_key_ports * key_ports = NULL ;
935
936
struct flow_dissector_key_control * key_control ;
936
937
struct flow_dissector_key_basic * key_basic ;
@@ -975,20 +976,21 @@ static void __skb_flow_bpf_to_target(const struct bpf_flow_keys *flow_keys,
975
976
key_control -> addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS ;
976
977
}
977
978
978
- if (dissector_uses_key (flow_dissector , FLOW_DISSECTOR_KEY_PORTS ))
979
+ if (dissector_uses_key (flow_dissector , FLOW_DISSECTOR_KEY_PORTS )) {
979
980
key_ports = skb_flow_dissector_target (flow_dissector ,
980
981
FLOW_DISSECTOR_KEY_PORTS ,
981
982
target_container );
982
- else if (dissector_uses_key (flow_dissector ,
983
- FLOW_DISSECTOR_KEY_PORTS_RANGE ))
984
- key_ports = skb_flow_dissector_target (flow_dissector ,
985
- FLOW_DISSECTOR_KEY_PORTS_RANGE ,
986
- target_container );
987
-
988
- if (key_ports ) {
989
983
key_ports -> src = flow_keys -> sport ;
990
984
key_ports -> dst = flow_keys -> dport ;
991
985
}
986
+ if (dissector_uses_key (flow_dissector ,
987
+ FLOW_DISSECTOR_KEY_PORTS_RANGE )) {
988
+ key_ports_range = skb_flow_dissector_target (flow_dissector ,
989
+ FLOW_DISSECTOR_KEY_PORTS_RANGE ,
990
+ target_container );
991
+ key_ports_range -> tp .src = flow_keys -> sport ;
992
+ key_ports_range -> tp .dst = flow_keys -> dport ;
993
+ }
992
994
993
995
if (dissector_uses_key (flow_dissector ,
994
996
FLOW_DISSECTOR_KEY_FLOW_LABEL )) {
0 commit comments