ebpf: Refactor tun_rss_steering_prog()

This saves branches and makes later BPF program changes easier.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
Akihiko Odaki 2024-04-28 16:01:00 +09:00 committed by Jason Wang
parent 8dc8220e23
commit f5c69e7ab2

View File

@ -547,27 +547,23 @@ int tun_rss_steering_prog(struct __sk_buff *skb)
config = bpf_map_lookup_elem(&tap_rss_map_configurations, &key);
toe = bpf_map_lookup_elem(&tap_rss_map_toeplitz_key, &key);
if (config && toe) {
if (!config->redirect) {
return config->default_queue;
}
if (calculate_rss_hash(skb, config, toe, &hash)) {
__u32 table_idx = hash % config->indirections_len;
__u16 *queue = 0;
queue = bpf_map_lookup_elem(&tap_rss_map_indirection_table,
&table_idx);
if (queue) {
return *queue;
}
}
return config->default_queue;
if (!config || !toe) {
return 0;
}
return 0;
if (config->redirect && calculate_rss_hash(skb, config, toe, &hash)) {
__u32 table_idx = hash % config->indirections_len;
__u16 *queue = 0;
queue = bpf_map_lookup_elem(&tap_rss_map_indirection_table,
&table_idx);
if (queue) {
return *queue;
}
}
return config->default_queue;
}
char _license[] SEC("license") = "GPL v2";