Message ID | 20240830020001.79377-3-dongml2@chinatelecom.cn (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: vxlan: add skb drop reasons support | expand |
From: Menglong Dong <menglong8.dong@gmail.com> Date: Fri, 30 Aug 2024 09:59:51 +0800 > Introduce the function pskb_network_may_pull_reason() and make > pskb_network_may_pull() a simple inline call to it. The drop reasons of > it just come from pskb_may_pull_reason. No object code changes I guess? Have you checked it via scripts/bloat-o-meter? > > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn> > --- > include/linux/skbuff.h | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h > index cf8f6ce06742..fe6f97b550fc 100644 > --- a/include/linux/skbuff.h > +++ b/include/linux/skbuff.h > @@ -3114,9 +3114,15 @@ static inline int skb_inner_network_offset(const struct sk_buff *skb) > return skb_inner_network_header(skb) - skb->data; > } > > +static inline enum skb_drop_reason > +pskb_network_may_pull_reason(struct sk_buff *skb, unsigned int len) > +{ > + return pskb_may_pull_reason(skb, skb_network_offset(skb) + len); > +} > + > static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len) > { > - return pskb_may_pull(skb, skb_network_offset(skb) + len); > + return pskb_network_may_pull_reason(skb, len) == SKB_NOT_DROPPED_YET; > } > > /* Thanks, Olek
On Fri, Aug 30, 2024 at 10:45 PM Alexander Lobakin <aleksander.lobakin@intel.com> wrote: > > From: Menglong Dong <menglong8.dong@gmail.com> > Date: Fri, 30 Aug 2024 09:59:51 +0800 > > > Introduce the function pskb_network_may_pull_reason() and make > > pskb_network_may_pull() a simple inline call to it. The drop reasons of > > it just come from pskb_may_pull_reason. > > No object code changes I guess? Have you checked it via > scripts/bloat-o-meter? > Not yet. I'll have a try on it. > > > > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn> > > --- > > include/linux/skbuff.h | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h > > index cf8f6ce06742..fe6f97b550fc 100644 > > --- a/include/linux/skbuff.h > > +++ b/include/linux/skbuff.h > > @@ -3114,9 +3114,15 @@ static inline int skb_inner_network_offset(const struct sk_buff *skb) > > return skb_inner_network_header(skb) - skb->data; > > } > > > > +static inline enum skb_drop_reason > > +pskb_network_may_pull_reason(struct sk_buff *skb, unsigned int len) > > +{ > > + return pskb_may_pull_reason(skb, skb_network_offset(skb) + len); > > +} > > + > > static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len) > > { > > - return pskb_may_pull(skb, skb_network_offset(skb) + len); > > + return pskb_network_may_pull_reason(skb, len) == SKB_NOT_DROPPED_YET; > > } > > > > /* > > Thanks, > Olek
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index cf8f6ce06742..fe6f97b550fc 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -3114,9 +3114,15 @@ static inline int skb_inner_network_offset(const struct sk_buff *skb) return skb_inner_network_header(skb) - skb->data; } +static inline enum skb_drop_reason +pskb_network_may_pull_reason(struct sk_buff *skb, unsigned int len) +{ + return pskb_may_pull_reason(skb, skb_network_offset(skb) + len); +} + static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len) { - return pskb_may_pull(skb, skb_network_offset(skb) + len); + return pskb_network_may_pull_reason(skb, len) == SKB_NOT_DROPPED_YET; } /*
Introduce the function pskb_network_may_pull_reason() and make pskb_network_may_pull() a simple inline call to it. The drop reasons of it just come from pskb_may_pull_reason. Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn> --- include/linux/skbuff.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)