Messages in this thread | | | From | menglong8.dong@gmail ... | Subject | [PATCH net-next 0/3] net: icmp: add skb drop reasons to icmp | Date | Mon, 14 Mar 2022 19:32:22 +0800 |
| |
From: Menglong Dong <imagedong@tencent.com>
In the commit c504e5c2f964 ("net: skb: introduce kfree_skb_reason()"), we added the support of reporting the reasons of skb drops to kfree_skb tracepoint. And in this series patches, reasons for skb drops are added to ICMP protocol.
In order to report the reasons of skb drops in 'sock_queue_rcv_skb()', the function 'sock_queue_rcv_skb_reason()' is introduced in the 1th patch, which is used in the 2th patch.
In the 2th patch, we add skb drop reasons to ping_queue_rcv_skb().
In the 3th patch, we make ICMP message handler functions return drop reasons, which means we change the return type of 'handler()' in 'struct icmp_control' from 'bool' to 'enum skb_drop_reason'. This changed its original intention, as 'false' means failure, but 'SKB_NOT_DROPPED_YET', which is 0, means success now. Therefore, we have to change all usages of these handler. Following "handler" functions are involved:
icmp_unreach() icmp_redirect() icmp_echo() icmp_timestamp() icmp_discard()
And following drop reasons are added(what they mean can be see in the document for them):
SKB_DROP_REASON_ICMP_CSUM SKB_DROP_REASON_ICMP_TYPE SKB_DROP_REASON_ICMP_BROADCAST
Menglong Dong (3): net: sock: introduce sock_queue_rcv_skb_reason() net: icmp: add skb drop reasons to ping_queue_rcv_skb() net: icmp: add reasons of the skb drops to icmp protocol
include/linux/skbuff.h | 5 +++ include/net/ping.h | 2 +- include/net/sock.h | 9 ++++- include/trace/events/skb.h | 3 ++ net/core/sock.c | 30 ++++++++++++--- net/ipv4/icmp.c | 75 ++++++++++++++++++++++---------------- net/ipv4/ping.c | 21 ++++++----- net/ipv6/icmp.c | 24 +++++++----- 8 files changed, 112 insertions(+), 57 deletions(-)
-- 2.35.1
| |