On 2/20/22 10:34 PM, Dongli Zhang wrote: > The TAP can be used as vhost-net backend. E.g., the tap_handle_frame() is > the interface to forward the skb from TAP to vhost-net/virtio-net. > > However, there are many "goto drop" in the TAP driver. Therefore, the > kfree_skb_reason() is involved at each "goto drop" to help userspace > ftrace/ebpf to track the reason for the loss of packets. > > The below reasons are introduced: > > - SKB_DROP_REASON_SKB_CSUM > - SKB_DROP_REASON_SKB_COPY_DATA > - SKB_DROP_REASON_SKB_GSO_SEG > - SKB_DROP_REASON_DEV_HDR > - SKB_DROP_REASON_FULL_RING > > Cc: Joao Martins <joao.m.martins@xxxxxxxxxx> > Cc: Joe Jin <joe.jin@xxxxxxxxxx> > Signed-off-by: Dongli Zhang <dongli.zhang@xxxxxxxxxx> > --- > Changed since v1: > - revise the reason name > Changed since v2: > - declare drop_reason as type "enum skb_drop_reason" > - handle the drop in skb_list_walk_safe() case > > drivers/net/tap.c | 35 +++++++++++++++++++++++++---------- > include/linux/skbuff.h | 9 +++++++++ > include/trace/events/skb.h | 5 +++++ > 3 files changed, 39 insertions(+), 10 deletions(-) > couple of places where the new reason should be in reverse xmas order; logic wise: Reviewed-by: David Ahern <dsahern@xxxxxxxxxx>