On Wed, 2016-12-07 at 14:52 +0800, Zhang Shengju wrote: > Currently, icmp_rcv() always return zero on a packet delivery upcall. > > To make its behavior more compliant with the way this API should be > used, this patch changes this to let it return NET_RX_SUCCESS when the > packet is proper handled, and NET_RX_DROP otherwise. > > Signed-off-by: Zhang Shengju <zhangshen...@cmss.chinamobile.com> > --- > net/ipv4/icmp.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c > index 691146a..f79d7a8 100644 > --- a/net/ipv4/icmp.c > +++ b/net/ipv4/icmp.c > @@ -1047,12 +1047,12 @@ int icmp_rcv(struct sk_buff *skb) > > if (success) { > consume_skb(skb); > - return 0; > + return NET_RX_SUCCESS; > } > > drop: > kfree_skb(skb); > - return 0; > + return NET_RX_DROP; > csum_error: > __ICMP_INC_STATS(net, ICMP_MIB_CSUMERRORS); > error:
I am curious, what external/visible effects do you expect from such a change ? We now have a very precise monitoring of where packets are dropped (consume_skb()/kfree_skb())