Merge branch 'flow-dissector-features'
authorDavid S. Miller <davem@davemloft.net>
Tue, 1 Sep 2015 22:06:24 +0000 (15:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Sep 2015 22:06:24 +0000 (15:06 -0700)
commit41ecc3d390266acc1aa911d2ec477928a5248f75
treeaf5886ed49d500ad34a2d0a8d69e92c6d3cf84fe
parentd3d11fe08ccc9bff174fc958722b5661f0932486
parent6db61d79c1e1b2346e2142d6c950a8d2e8380b82
Merge branch 'flow-dissector-features'

Tom Herbert says:

====================
flow_dissector: Paramterize dissection and other features

This patch set adds some new capabilities to flow_dissector:

- Add flags to flow dissector functions to control dissection
  - Flag to stop dissection when L3 header is seen (don't
    dissect L4)
  - Flag to stop dissection when encapsulation is detected
  - Flag to parse first fragment of fragmented packet. This
    may provide L4 ports
- Added new reporting in key_control
  - Packet is a fragment
  - Packet is a first fragment
  - Packet has encapsulation

Also:
  - Make __skb_set_sw_hash a general function
  - Create functions to get a flow hash based on flowi4 or flowi6
    structures without an reference to an skbuff
  - Ignore flow dissector return value from ___skb_get_hash. Just
    use whatever key fields are found to make a hash

Tested:

Ran 200 netperf TCP_RR instances for IPv6 and IPv4. Did not see any
regression. Ran UDP_RR with 10000 byte request and response size
for IPv4 and IPv6, no regression observed however I did see better
performance with IPv6 flow labels due to use of flow labels for L4
hash.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>