rps: Inspect PPTP encapsulated by GRE to get flow hash
authorGao Feng <fgao@ikuai8.com>
Tue, 9 Aug 2016 04:38:24 +0000 (12:38 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Aug 2016 00:22:14 +0000 (17:22 -0700)
commitab10dccb11608b96b43b557c12a5ad867723e503
treedb7883359e3748a0789ca78d85c97dbd480e7911
parent084c9535aab61ddd0e55eb796baa6b078b3843b1
rps: Inspect PPTP encapsulated by GRE to get flow hash

The PPTP is encapsulated by GRE header with that GRE_VERSION bits
must contain one. But current GRE RPS needs the GRE_VERSION must be
zero. So RPS does not work for PPTP traffic.

In my test environment, there are four MIPS cores, and all traffic
are passed through by PPTP. As a result, only one core is 100% busy
while other three cores are very idle. After this patch, the usage
of four cores are balanced well.

Signed-off-by: Gao Feng <fgao@ikuai8.com>
Reviewed-by: Philip Prindeville <philipp@redfish-solutions.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ppp/pptp.c
include/net/gre.h
include/net/pptp.h [new file with mode: 0644]
include/uapi/linux/if_tunnel.h
net/core/flow_dissector.c