Message ID | 20191017071103.28744-1-idosch@idosch.org |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] mlxsw: spectrum_trap: Push Ethernet header before reporting trap | expand |
From: Ido Schimmel <idosch@idosch.org> Date: Thu, 17 Oct 2019 10:11:03 +0300 > From: Ido Schimmel <idosch@mellanox.com> > > devlink maintains packets and bytes statistics for each trap. Since > eth_type_trans() was called to set the skb's protocol, the data pointer > no longer points to the start of the packet and the bytes accounting is > off by 14 bytes. > > Fix this by pushing the skb's data pointer to the start of the packet. > > Fixes: b5ce611fd96e ("mlxsw: spectrum: Add devlink-trap support") > Reported-by: Alex Kushnarov <alexanderk@mellanox.com> > Tested-by: Alex Kushnarov <alexanderk@mellanox.com> > Acked-by: Jiri Pirko <jiri@mellanox.com> > Signed-off-by: Ido Schimmel <idosch@mellanox.com> Applied, thanks.
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c index 899450b28621..7c03b661ae7e 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c @@ -99,6 +99,7 @@ static void mlxsw_sp_rx_drop_listener(struct sk_buff *skb, u8 local_port, devlink = priv_to_devlink(mlxsw_sp->core); in_devlink_port = mlxsw_core_port_devlink_port_get(mlxsw_sp->core, local_port); + skb_push(skb, ETH_HLEN); devlink_trap_report(devlink, skb, trap_ctx, in_devlink_port); consume_skb(skb); }