mbox series

[net-next,v2,00/12] net: vxlan: add skb drop reasons support

Message ID 20240830020001.79377-1-dongml2@chinatelecom.cn (mailing list archive)
Headers show
Series net: vxlan: add skb drop reasons support | expand

Message

Menglong Dong Aug. 30, 2024, 1:59 a.m. UTC
In this series, we add skb drop reasons to the vxlan module. After the
commit 071c0fc6fb91 ("net: extend drop reasons for multiple subsystems"),
we can add the skb drop reasons as a subsystem.

So, we now add a new skb drop reason subsystem for vxlan, and following
new skb drop reasons are introduced to vxlan:

  VXLAN_DROP_INVALID_SMAC
  VXLAN_DROP_ENTRY_EXISTS
  VXLAN_DROP_INVALID_HDR
  VXLAN_DROP_VNI_NOT_FOUND
  VXLAN_DROP_NO_REMOTE

And we add the following drop reasons to enum skb_drop_reason:

  IP_TUNNEL_ECN
  TUNNEL_TXINFO

Changes since v1:
- document all the drop reaons that we introduce
- rename the drop reasons to make them more descriptive, as Ido advised
- remove the 2nd patch, which introduce the SKB_DR_RESET
- add the 4th patch, which adds skb_vlan_inet_prepare_reason() helper
- introduce the 6th patch, which make vxlan_set_mac return drop reasons
- introduce the 10th patch, which uses VXLAN_DROP_NO_REMOTE as the drop
  reasons, as Ido advised

Menglong Dong (12):
  net: vxlan: add vxlan to the drop reason subsystem
  net: skb: add pskb_network_may_pull_reason() helper
  net: tunnel: add pskb_inet_may_pull_reason() helper
  net: tunnel: add skb_vlan_inet_prepare_reason() helper
  net: vxlan: make vxlan_remcsum() return drop reasons
  net: vxlan: make vxlan_set_mac() return drop reasons
  net: vxlan: add skb drop reasons to vxlan_rcv()
  net: vxlan: use vxlan_kfree_skb() in vxlan_xmit()
  net: vxlan: add drop reasons support to vxlan_xmit_one()
  net: vxlan: use kfree_skb_reason in vxlan_mdb_xmit
  net: vxlan: use kfree_skb_reason in vxlan_encap_bypass
  net: vxlan: use vxlan_kfree_skb in encap_bypass_if_local

 drivers/net/vxlan/drop.h          |  47 ++++++++++++++
 drivers/net/vxlan/vxlan_core.c    | 104 +++++++++++++++++++++---------
 drivers/net/vxlan/vxlan_mdb.c     |   2 +-
 drivers/net/vxlan/vxlan_private.h |   1 +
 include/linux/skbuff.h            |   8 ++-
 include/net/dropreason-core.h     |   9 +++
 include/net/dropreason.h          |   6 ++
 include/net/ip_tunnels.h          |  31 ++++++---
 8 files changed, 168 insertions(+), 40 deletions(-)
 create mode 100644 drivers/net/vxlan/drop.h