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.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index d8340e6e8814..47082f54ec1f 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -4040,6 +4040,12 @@ static inline bool skb_is_gso_v6(const struct sk_buff *skb)
4040 return skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6; 4040 return skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6;
4041} 4041}
4042 4042
4043/* Note: Should be called only if skb_is_gso(skb) is true */
4044static inline bool skb_is_gso_sctp(const struct sk_buff *skb)
4045{
4046 return skb_shinfo(skb)->gso_type & SKB_GSO_SCTP;
4047}
4048
4043static inline void skb_gso_reset(struct sk_buff *skb) 4049static inline void skb_gso_reset(struct sk_buff *skb)
4044{ 4050{
4045 skb_shinfo(skb)->gso_size = 0; 4051 skb_shinfo(skb)->gso_size = 0;
@@ -4047,6 +4053,22 @@ static inline void skb_gso_reset(struct sk_buff *skb)
4047 skb_shinfo(skb)->gso_type = 0; 4053 skb_shinfo(skb)->gso_type = 0;
4048} 4054}
4049 4055
4056static inline void skb_increase_gso_size(struct skb_shared_info *shinfo,
4057 u16 increment)
4058{
4059 if (WARN_ON_ONCE(shinfo->gso_size == GSO_BY_FRAGS))
4060 return;
4061 shinfo->gso_size += increment;
4062}
4063
4064static inline void skb_decrease_gso_size(struct skb_shared_info *shinfo,
4065 u16 decrement)
4066{
4067 if (WARN_ON_ONCE(shinfo->gso_size == GSO_BY_FRAGS))
4068 return;
4069 shinfo->gso_size -= decrement;
4070}
4071
4050void __skb_warn_lro_forwarding(const struct sk_buff *skb); 4072void __skb_warn_lro_forwarding(const struct sk_buff *skb);
4051 4073
4052static inline bool skb_warn_if_lro(const struct sk_buff *skb) 4074static inline bool skb_warn_if_lro(const struct sk_buff *skb)