diff mbox series

[net-next,1/1] l2tp: report rx cookie discards in netlink get

Message ID 20200928124634.21461-1-tparkin@katalix.com
State New
Headers show
Series [net-next,1/1] l2tp: report rx cookie discards in netlink get | expand

Commit Message

Tom Parkin Sept. 28, 2020, 12:46 p.m. UTC
When an L2TPv3 session receives a data frame with an incorrect cookie
l2tp_core logs a warning message and bumps a stats counter to reflect
the fact that the packet has been dropped.

However, the stats counter in question is missing from the l2tp_netlink
get message for tunnel and session instances.

Include the statistic in the netlink get response.

Signed-off-by: Tom Parkin <tparkin@katalix.com>
---
 include/uapi/linux/l2tp.h | 1 +
 net/l2tp/l2tp_netlink.c   | 6 ++++++
 2 files changed, 7 insertions(+)

Comments

David Miller Sept. 29, 2020, 1:46 a.m. UTC | #1
From: Tom Parkin <tparkin@katalix.com>
Date: Mon, 28 Sep 2020 13:46:34 +0100

> --- a/include/uapi/linux/l2tp.h
> +++ b/include/uapi/linux/l2tp.h
> @@ -143,6 +143,7 @@ enum {
>  	L2TP_ATTR_RX_SEQ_DISCARDS,	/* u64 */
>  	L2TP_ATTR_RX_OOS_PACKETS,	/* u64 */
>  	L2TP_ATTR_RX_ERRORS,		/* u64 */
> +	L2TP_ATTR_RX_COOKIE_DISCARDS,	/* u64 */
>  	L2TP_ATTR_STATS_PAD,
>  	__L2TP_ATTR_STATS_MAX,
>  };

You can't change the value of the L2TP_ATTR_STATS_PAD attribute.

Instead you must add new values strictly right before the
__L2TP_ATTR_STATS_MAX.
Tom Parkin Sept. 29, 2020, 12:16 p.m. UTC | #2
On  Mon, Sep 28, 2020 at 18:46:25 -0700, David Miller wrote:
> From: Tom Parkin <tparkin@katalix.com>

> Date: Mon, 28 Sep 2020 13:46:34 +0100

> 

> > --- a/include/uapi/linux/l2tp.h

> > +++ b/include/uapi/linux/l2tp.h

> > @@ -143,6 +143,7 @@ enum {

> >  	L2TP_ATTR_RX_SEQ_DISCARDS,	/* u64 */

> >  	L2TP_ATTR_RX_OOS_PACKETS,	/* u64 */

> >  	L2TP_ATTR_RX_ERRORS,		/* u64 */

> > +	L2TP_ATTR_RX_COOKIE_DISCARDS,	/* u64 */

> >  	L2TP_ATTR_STATS_PAD,

> >  	__L2TP_ATTR_STATS_MAX,

> >  };

> 

> You can't change the value of the L2TP_ATTR_STATS_PAD attribute.

> 

> Instead you must add new values strictly right before the

> __L2TP_ATTR_STATS_MAX.


Of course, my mistake :-(

I'll respin accordingly, thanks.
diff mbox series

Patch

diff --git a/include/uapi/linux/l2tp.h b/include/uapi/linux/l2tp.h
index 88a0d32b8c07..7bf92e0606af 100644
--- a/include/uapi/linux/l2tp.h
+++ b/include/uapi/linux/l2tp.h
@@ -143,6 +143,7 @@  enum {
 	L2TP_ATTR_RX_SEQ_DISCARDS,	/* u64 */
 	L2TP_ATTR_RX_OOS_PACKETS,	/* u64 */
 	L2TP_ATTR_RX_ERRORS,		/* u64 */
+	L2TP_ATTR_RX_COOKIE_DISCARDS,	/* u64 */
 	L2TP_ATTR_STATS_PAD,
 	__L2TP_ATTR_STATS_MAX,
 };
diff --git a/net/l2tp/l2tp_netlink.c b/net/l2tp/l2tp_netlink.c
index 83c015f7f20d..5ca5056e9636 100644
--- a/net/l2tp/l2tp_netlink.c
+++ b/net/l2tp/l2tp_netlink.c
@@ -420,6 +420,9 @@  static int l2tp_nl_tunnel_send(struct sk_buff *skb, u32 portid, u32 seq, int fla
 	    nla_put_u64_64bit(skb, L2TP_ATTR_RX_SEQ_DISCARDS,
 			      atomic_long_read(&tunnel->stats.rx_seq_discards),
 			      L2TP_ATTR_STATS_PAD) ||
+	    nla_put_u64_64bit(skb, L2TP_ATTR_RX_COOKIE_DISCARDS,
+			      atomic_long_read(&tunnel->stats.rx_cookie_discards),
+			      L2TP_ATTR_STATS_PAD) ||
 	    nla_put_u64_64bit(skb, L2TP_ATTR_RX_OOS_PACKETS,
 			      atomic_long_read(&tunnel->stats.rx_oos_packets),
 			      L2TP_ATTR_STATS_PAD) ||
@@ -760,6 +763,9 @@  static int l2tp_nl_session_send(struct sk_buff *skb, u32 portid, u32 seq, int fl
 	    nla_put_u64_64bit(skb, L2TP_ATTR_RX_SEQ_DISCARDS,
 			      atomic_long_read(&session->stats.rx_seq_discards),
 			      L2TP_ATTR_STATS_PAD) ||
+	    nla_put_u64_64bit(skb, L2TP_ATTR_RX_COOKIE_DISCARDS,
+			      atomic_long_read(&session->stats.rx_cookie_discards),
+			      L2TP_ATTR_STATS_PAD) ||
 	    nla_put_u64_64bit(skb, L2TP_ATTR_RX_OOS_PACKETS,
 			      atomic_long_read(&session->stats.rx_oos_packets),
 			      L2TP_ATTR_STATS_PAD) ||