Message ID | 20241217113739.3929300-1-amorenoz@redhat.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] psample: adjust size if rate_as_probability is set | expand |
Adrian Moreno <amorenoz@redhat.com> writes: > If PSAMPLE_ATTR_SAMPLE_PROBABILITY flag is to be sent, the available > size for the packet data has to be adjusted accordingly. > > Also, check the error code returned by nla_put_flag. > > Fixes: 7b1b2b60c63f ("net: psample: allow using rate as probability") > Signed-off-by: Adrian Moreno <amorenoz@redhat.com> > --- Reviewed-by: Aaron Conole <aconole@redhat.com> > net/psample/psample.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/net/psample/psample.c b/net/psample/psample.c > index a0ddae8a65f9..25f92ba0840c 100644 > --- a/net/psample/psample.c > +++ b/net/psample/psample.c > @@ -393,7 +393,9 @@ void psample_sample_packet(struct psample_group *group, > nla_total_size_64bit(sizeof(u64)) + /* timestamp */ > nla_total_size(sizeof(u16)) + /* protocol */ > (md->user_cookie_len ? > - nla_total_size(md->user_cookie_len) : 0); /* user cookie */ > + nla_total_size(md->user_cookie_len) : 0) + /* user cookie */ > + (md->rate_as_probability ? > + nla_total_size(0) : 0); /* rate as probability */ > > #ifdef CONFIG_INET > tun_info = skb_tunnel_info(skb); > @@ -498,8 +500,9 @@ void psample_sample_packet(struct psample_group *group, > md->user_cookie)) > goto error; > > - if (md->rate_as_probability) > - nla_put_flag(nl_skb, PSAMPLE_ATTR_SAMPLE_PROBABILITY); > + if (md->rate_as_probability && > + nla_put_flag(nl_skb, PSAMPLE_ATTR_SAMPLE_PROBABILITY)) > + goto error; > > genlmsg_end(nl_skb, data); > genlmsg_multicast_netns(&psample_nl_family, group->net, nl_skb, 0,
On Tue, Dec 17, 2024 at 12:37:39PM +0100, Adrian Moreno wrote: > If PSAMPLE_ATTR_SAMPLE_PROBABILITY flag is to be sent, the available > size for the packet data has to be adjusted accordingly. > > Also, check the error code returned by nla_put_flag. > > Fixes: 7b1b2b60c63f ("net: psample: allow using rate as probability") > Signed-off-by: Adrian Moreno <amorenoz@redhat.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com>
diff --git a/net/psample/psample.c b/net/psample/psample.c index a0ddae8a65f9..25f92ba0840c 100644 --- a/net/psample/psample.c +++ b/net/psample/psample.c @@ -393,7 +393,9 @@ void psample_sample_packet(struct psample_group *group, nla_total_size_64bit(sizeof(u64)) + /* timestamp */ nla_total_size(sizeof(u16)) + /* protocol */ (md->user_cookie_len ? - nla_total_size(md->user_cookie_len) : 0); /* user cookie */ + nla_total_size(md->user_cookie_len) : 0) + /* user cookie */ + (md->rate_as_probability ? + nla_total_size(0) : 0); /* rate as probability */ #ifdef CONFIG_INET tun_info = skb_tunnel_info(skb); @@ -498,8 +500,9 @@ void psample_sample_packet(struct psample_group *group, md->user_cookie)) goto error; - if (md->rate_as_probability) - nla_put_flag(nl_skb, PSAMPLE_ATTR_SAMPLE_PROBABILITY); + if (md->rate_as_probability && + nla_put_flag(nl_skb, PSAMPLE_ATTR_SAMPLE_PROBABILITY)) + goto error; genlmsg_end(nl_skb, data); genlmsg_multicast_netns(&psample_nl_family, group->net, nl_skb, 0,
If PSAMPLE_ATTR_SAMPLE_PROBABILITY flag is to be sent, the available size for the packet data has to be adjusted accordingly. Also, check the error code returned by nla_put_flag. Fixes: 7b1b2b60c63f ("net: psample: allow using rate as probability") Signed-off-by: Adrian Moreno <amorenoz@redhat.com> --- net/psample/psample.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)