|
@@ -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 (!config || !toe) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
|
|
|
- if (calculate_rss_hash(skb, config, toe, &hash)) {
|
|
|
- __u32 table_idx = hash % config->indirections_len;
|
|
|
- __u16 *queue = 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);
|
|
|
+ queue = bpf_map_lookup_elem(&tap_rss_map_indirection_table,
|
|
|
+ &table_idx);
|
|
|
|
|
|
- if (queue) {
|
|
|
- return *queue;
|
|
|
- }
|
|
|
+ if (queue) {
|
|
|
+ return *queue;
|
|
|
}
|
|
|
-
|
|
|
- return config->default_queue;
|
|
|
}
|
|
|
|
|
|
- return 0;
|
|
|
+ return config->default_queue;
|
|
|
}
|
|
|
|
|
|
char _license[] SEC("license") = "GPL v2";
|