mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
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:
parent
8dc8220e23
commit
f5c69e7ab2
1 changed files with 15 additions and 19 deletions
|
@ -547,27 +547,23 @@ int tun_rss_steering_prog(struct __sk_buff *skb)
|
||||||
config = bpf_map_lookup_elem(&tap_rss_map_configurations, &key);
|
config = bpf_map_lookup_elem(&tap_rss_map_configurations, &key);
|
||||||
toe = bpf_map_lookup_elem(&tap_rss_map_toeplitz_key, &key);
|
toe = bpf_map_lookup_elem(&tap_rss_map_toeplitz_key, &key);
|
||||||
|
|
||||||
if (config && toe) {
|
if (!config || !toe) {
|
||||||
if (!config->redirect) {
|
return 0;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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";
|
char _license[] SEC("license") = "GPL v2";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue