rps: Infrastructure in __skb_get_rxhash for deep inspection
Basics for looking for ports in encapsulated packets in tunnels. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
bdeab99191
commit
e971b7225b
@@ -133,6 +133,7 @@
|
|||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <linux/inetdevice.h>
|
#include <linux/inetdevice.h>
|
||||||
#include <linux/cpu_rmap.h>
|
#include <linux/cpu_rmap.h>
|
||||||
|
#include <linux/if_tunnel.h>
|
||||||
|
|
||||||
#include "net-sysfs.h"
|
#include "net-sysfs.h"
|
||||||
|
|
||||||
@@ -2539,6 +2540,7 @@ void __skb_get_rxhash(struct sk_buff *skb)
|
|||||||
nhoff = skb_network_offset(skb);
|
nhoff = skb_network_offset(skb);
|
||||||
proto = skb->protocol;
|
proto = skb->protocol;
|
||||||
|
|
||||||
|
again:
|
||||||
switch (proto) {
|
switch (proto) {
|
||||||
case __constant_htons(ETH_P_IP):
|
case __constant_htons(ETH_P_IP):
|
||||||
if (!pskb_may_pull(skb, sizeof(*ip) + nhoff))
|
if (!pskb_may_pull(skb, sizeof(*ip) + nhoff))
|
||||||
@@ -2567,6 +2569,11 @@ void __skb_get_rxhash(struct sk_buff *skb)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (ip_proto) {
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
ports.v32 = 0;
|
ports.v32 = 0;
|
||||||
poff = proto_ports_offset(ip_proto);
|
poff = proto_ports_offset(ip_proto);
|
||||||
if (poff >= 0) {
|
if (poff >= 0) {
|
||||||
|
Reference in New Issue
Block a user