diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2012-04-11 19:05:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-13 13:39:37 -0400 |
commit | 447167bf565a474ff0cfb0f41d54936937479e97 (patch) | |
tree | 38b03cb4e23bec19939545575e36f7395c5b156e /include/net/udp.h | |
parent | 77577bf93275b485cecb4f358a085949c32e9dcd (diff) |
udp: intoduce udp_encap_needed static_key
Most machines dont use UDP encapsulation (L2TP)
Adds a static_key so that udp_queue_rcv_skb() doesnt have to perform a
test if L2TP never setup the encap_rcv on a socket.
Idea of this patch came after Simon Horman proposal to add a hook on TCP
as well.
If static_key is not yet enabled, the fast path does a single JMP .
When static_key is enabled, JMP destination is patched to reach the real
encap_type/encap_rcv logic, possibly adding cache misses.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Simon Horman <horms@verge.net.au>
Cc: dev@openvswitch.org
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/udp.h')
-rw-r--r-- | include/net/udp.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/udp.h b/include/net/udp.h index 5d606d9da9e5..9671f5f1df9c 100644 --- a/include/net/udp.h +++ b/include/net/udp.h | |||
@@ -267,4 +267,5 @@ extern void udp_init(void); | |||
267 | extern int udp4_ufo_send_check(struct sk_buff *skb); | 267 | extern int udp4_ufo_send_check(struct sk_buff *skb); |
268 | extern struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb, | 268 | extern struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb, |
269 | netdev_features_t features); | 269 | netdev_features_t features); |
270 | extern void udp_encap_enable(void); | ||
270 | #endif /* _UDP_H */ | 271 | #endif /* _UDP_H */ |