Ophir Munk 54aad2f231 net/tap: fix eBPF handling of non-RSS flows
The eBPF classifier (section "cls_q" in tap_bpf_program.c) is tracing
marked packets in which skb->cb[1] contains an RSS queue number, and
redirects those packets to the matched queue.
It is expected that skb->cb[1] has been previously set with a valid RSS
queue number during an eBPF action (section "l3_l4" in tap_bpf_program.c).
However, for non-RSS flows, skb->cb[1] may contain a random unset value,
which could falsely be interpreted as a valid RSS queue.
To avoid this potential error, tap_bpf_program.c has been updated as
follows:
1. After calculating the RSS queue number, it is added a unique offset in
order to uniquely identify it as a valid RSS queue number.
2. After matching an RSS queue to a packet, skb->cb[1] is set to 0.

Fixes: cdc07e83bb24 ("net/tap: add eBPF program file")
Fixes: aabe70df73a3 ("net/tap: add eBPF bytes code")

Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
2018-02-05 19:56:04 +01:00
..
2018-01-22 01:26:49 +01:00
2018-01-31 20:57:29 +01:00
2018-01-22 01:26:49 +01:00
2018-01-22 01:26:49 +01:00
2018-01-31 20:57:29 +01:00
2018-01-22 01:26:49 +01:00
2018-01-29 10:04:28 +01:00
2018-02-05 19:56:04 +01:00
2018-02-05 14:51:38 +01:00
2018-01-22 01:26:49 +01:00
2018-01-22 01:26:49 +01:00
2018-01-22 01:26:49 +01:00
2018-02-05 14:51:38 +01:00