Thread (18 messages) flat view 18 messages, 7 authors, 2016-08-15

Re: [PATCH net-next 1/4] flow_dissector: Get vlan info from skb->vlan_tci instead of skb->data

From: Toshiaki Makita <hidden>
Date: 2016-08-15 02:38:31

On 16/08/14 (日) 23:58, Hadar Hen Zion wrote:
On Fri, Aug 12, 2016 at 9:36 AM, Toshiaki Makita
[off-list ref] wrote:
quoted
On 2016/08/10 22:32, Hadar Hen Zion wrote:
quoted
Early in the datapath skb_vlan_untag function is called, stripped
the vlan from the skb and set skb->vlan_tci and skb->vlan_proto fields.

The current dissection doesn't handle vlan packets correctly.  Vlan
doesn't exist in skb->data anymore when applying flow dissection on the
skb, fix that.
RPS (and flow-dissector called in RPS) is performed before vlan-strip in
__netif_receive_skb_core().
right, I'll fix it to v2.
quoted
Also, in cases skb is tagged with multiple vlan headers (typical when
using 802.1ad), the second level vlan tag is in skb->data.
Currently, flow_dissector doesn't support multiple vlan headers, only
one vlan_id field is present.
There aren't any flow_dissector "customers" yet for multiple vlan support.
Sure, no need to store second level vlan tag information for now.
The point is that current flow-dissector correctly skips any number of 
vlan tags and get hash value from IP/TCP/UDP headers, so RPS works for 
multiple vlan tagged packets.

Thanks,
Toshiaki Makita
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help