diff options
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r-- | include/linux/skbuff.h | 19 |
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, | |||
991 | bool __skb_flow_dissect(const struct sk_buff *skb, | 991 | bool __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 | ||
996 | static inline bool skb_flow_dissect(const struct sk_buff *skb, | 997 | static 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 | ||
1004 | static inline bool skb_flow_dissect_flow_keys(const struct sk_buff *skb, | 1005 | static 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 | ||
1012 | static inline bool skb_flow_dissect_flow_keys_buf(struct flow_keys *flow, | 1014 | static 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 | ||
1021 | static inline __u32 skb_get_hash(struct sk_buff *skb) | 1024 | static 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); |