Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e971b722 authored by Tom Herbert's avatar Tom Herbert Committed by David S. Miller
Browse files

rps: Infrastructure in __skb_get_rxhash for deep inspection



Basics for looking for ports in encapsulated packets in tunnels.

Signed-off-by: default avatarTom Herbert <therbert@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bdeab991
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@
#include <linux/pci.h>
#include <linux/inetdevice.h>
#include <linux/cpu_rmap.h>
#include <linux/if_tunnel.h>

#include "net-sysfs.h"

@@ -2539,6 +2540,7 @@ void __skb_get_rxhash(struct sk_buff *skb)
	nhoff = skb_network_offset(skb);
	proto = skb->protocol;

again:
	switch (proto) {
	case __constant_htons(ETH_P_IP):
		if (!pskb_may_pull(skb, sizeof(*ip) + nhoff))
@@ -2567,6 +2569,11 @@ void __skb_get_rxhash(struct sk_buff *skb)
		goto done;
	}

	switch (ip_proto) {
	default:
		break;
	}

	ports.v32 = 0;
	poff = proto_ports_offset(ip_proto);
	if (poff >= 0) {