aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/skbuff.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r--include/linux/skbuff.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index bbe41bccfc5f..9e62687c70f3 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -991,31 +991,34 @@ void skb_flow_dissector_init(struct flow_dissector *flow_dissector,
991bool __skb_flow_dissect(const struct sk_buff *skb, 991bool __skb_flow_dissect(const struct sk_buff *skb,
992 struct flow_dissector *flow_dissector, 992 struct flow_dissector *flow_dissector,
993 void *target_container, 993 void *target_container,
994 void *data, __be16 proto, int nhoff, int hlen); 994 void *data, __be16 proto, int nhoff, int hlen,
995 unsigned int flags);
995 996
996static inline bool skb_flow_dissect(const struct sk_buff *skb, 997static inline bool skb_flow_dissect(const struct sk_buff *skb,
997 struct flow_dissector *flow_dissector, 998 struct flow_dissector *flow_dissector,
998 void *target_container) 999 void *target_container, unsigned int flags)
999{ 1000{
1000 return __skb_flow_dissect(skb, flow_dissector, target_container, 1001 return __skb_flow_dissect(skb, flow_dissector, target_container,
1001 NULL, 0, 0, 0); 1002 NULL, 0, 0, 0, flags);
1002} 1003}
1003 1004
1004static inline bool skb_flow_dissect_flow_keys(const struct sk_buff *skb, 1005static inline bool skb_flow_dissect_flow_keys(const struct sk_buff *skb,
1005 struct flow_keys *flow) 1006 struct flow_keys *flow,
1007 unsigned int flags)
1006{ 1008{
1007 memset(flow, 0, sizeof(*flow)); 1009 memset(flow, 0, sizeof(*flow));
1008 return __skb_flow_dissect(skb, &flow_keys_dissector, flow, 1010 return __skb_flow_dissect(skb, &flow_keys_dissector, flow,
1009 NULL, 0, 0, 0); 1011 NULL, 0, 0, 0, flags);
1010} 1012}
1011 1013
1012static inline bool skb_flow_dissect_flow_keys_buf(struct flow_keys *flow, 1014static inline bool skb_flow_dissect_flow_keys_buf(struct flow_keys *flow,
1013 void *data, __be16 proto, 1015 void *data, __be16 proto,
1014 int nhoff, int hlen) 1016 int nhoff, int hlen,
1017 unsigned int flags)
1015{ 1018{
1016 memset(flow, 0, sizeof(*flow)); 1019 memset(flow, 0, sizeof(*flow));
1017 return __skb_flow_dissect(NULL, &flow_keys_buf_dissector, flow, 1020 return __skb_flow_dissect(NULL, &flow_keys_buf_dissector, flow,
1018 data, proto, nhoff, hlen); 1021 data, proto, nhoff, hlen, flags);
1019} 1022}
1020 1023
1021static inline __u32 skb_get_hash(struct sk_buff *skb) 1024static inline __u32 skb_get_hash(struct sk_buff *skb)
@@ -2046,7 +2049,7 @@ static inline void skb_probe_transport_header(struct sk_buff *skb,
2046 2049
2047 if (skb_transport_header_was_set(skb)) 2050 if (skb_transport_header_was_set(skb))
2048 return; 2051 return;
2049 else if (skb_flow_dissect_flow_keys(skb, &keys)) 2052 else if (skb_flow_dissect_flow_keys(skb, &keys, 0))
2050 skb_set_transport_header(skb, keys.control.thoff); 2053 skb_set_transport_header(skb, keys.control.thoff);
2051 else 2054 else
2052 skb_set_transport_header(skb, offset_hint); 2055 skb_set_transport_header(skb, offset_hint);