ip6_xmit checks if the outgoing packet is larger than the path MTU and
emits ICMPv6 packet too big locally if this is the case. Logging this,
even at KERN_DEBUG, confuses users. It is also not actually helpful for
debugging, given that there is no reference to the connection that
triggered this event.
Hence move this message to LIMIT_NETDEBUG, as suggested by Andi Kleen
back in 2001 ([off-list ref]).
Signed-off-by: Philipp Kern <redacted>
---
net/ipv6/ip6_output.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 5b2d63e..707002f 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -241,7 +241,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
dst->dev, dst_output);
}
- net_dbg_ratelimited("IPv6: sending pkt_too_big to self\n");
+ LIMIT_NETDEBUG("IPv6: sending pkt_too_big to self\n");
skb->dev = dst->dev;
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS);--
1.7.10.4
On Sat, 2012-07-28 at 17:06 +0200, Philipp Kern wrote:
ip6_xmit checks if the outgoing packet is larger than the path MTU and
emits ICMPv6 packet too big locally if this is the case. Logging this,
even at KERN_DEBUG, confuses users. It is also not actually helpful for
debugging, given that there is no reference to the connection that
triggered this event.
[]
quoted hunk
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
[]
quoted hunk
@@ -241,7 +241,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
dst->dev, dst_output);
}
- net_dbg_ratelimited("IPv6: sending pkt_too_big to self\n");
+ LIMIT_NETDEBUG("IPv6: sending pkt_too_big to self\n");
LIMIT_NETDEBUG doesn't include a logging level.
Add a KERN_DEBUG prefix or another KERN_<LEVEL>.
Maybe it'd be better to add the context too.
On Sat, Jul 28, 2012 at 10:29:20AM -0700, Joe Perches wrote:
On Sat, 2012-07-28 at 17:06 +0200, Philipp Kern wrote:
quoted
ip6_xmit checks if the outgoing packet is larger than the path MTU and
emits ICMPv6 packet too big locally if this is the case. Logging this,
even at KERN_DEBUG, confuses users. It is also not actually helpful for
debugging, given that there is no reference to the connection that
triggered this event.
[]
quoted
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
[]
quoted
@@ -241,7 +241,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
dst->dev, dst_output);
}
- net_dbg_ratelimited("IPv6: sending pkt_too_big to self\n");
+ LIMIT_NETDEBUG("IPv6: sending pkt_too_big to self\n");
LIMIT_NETDEBUG doesn't include a logging level.
Add a KERN_DEBUG prefix or another KERN_<LEVEL>.
True, sorry, and thanks. That got lost with the change to net_dbg_ratelimited.
Maybe it'd be better to add the context too.
Right. What kind of context do you want to see? Would saddr, daddr and dst_mtu
be enough? What about skb->len / local_df / skb_is_gso (which are in the
condition of the preceding if)?
Kind regards
Philipp Kern