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. Tom Herbert (11): flow_dissector: Move skb related functions to skbuff.h skbuff: Make __skb_set_sw_hash a general function flowi: Abstract out functions to get flow hash based on flowi flow_dissector: Jump to exit code in __skb_flow_dissect flow_dissector: Add flags argument to skb_flow_dissector functions flow_dissector: Add control/reporting of fragmentation flow_dissector: Support IPv6 fragment header flow_dissector: Add flag to stop parsing at L3 flow_dissector: Add flag to stop parsing when an IPv6 flow label is seen flow_dissector: Add control/reporting of encapsulation flow_dissector: Ignore flow dissector return value from ___skb_get_hash drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/cisco/enic/enic_clsf.c | 2 +- drivers/net/hyperv/netvsc_drv.c | 2 +- include/linux/skbuff.h | 113 +++++++++++++++++---- include/net/flow.h | 19 ++++ include/net/flow_dissector.h | 65 +++---------- net/core/flow.c | 36 +++++++ net/core/flow_dissector.c | 146 ++++++++++++++++++---------- net/ethernet/eth.c | 2 +- net/sched/cls_flow.c | 2 +- net/sched/cls_flower.c | 2 +- net/sched/sch_choke.c | 4 +- 12 files changed, 267 insertions(+), 128 deletions(-) -- 1.8.1 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html