Message ID | 20241008142300.236781-9-dongml2@chinatelecom.cn (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: vxlan: add skb drop reasons support | expand |
On Tue, Oct 08, 2024 at 10:22:56PM +0800, Menglong Dong wrote: > Replace kfree_skb() with kfree_skb_reason() in vxlan_xmit(). Following > new skb drop reasons are introduced for vxlan: > > /* no remote found for xmit */ > SKB_DROP_REASON_VXLAN_NO_REMOTE > /* packet without necessary metadata reached a device which is in > * "eternal" mode That should be "external" mode (with an "x"). > + /** > + * @SKB_DROP_REASON_TUNNEL_TXINFO: packet without necessary metadata > + * reached a device which is in "eternal" mode. Here too. > + */ > + SKB_DROP_REASON_TUNNEL_TXINFO, > /** > * @SKB_DROP_REASON_LOCAL_MAC: the source MAC address is equal to > * the MAC address of the local netdev. > -- > 2.39.5 >
On Wed, Oct 9, 2024 at 2:05 AM Guillaume Nault <gnault@redhat.com> wrote: > > On Tue, Oct 08, 2024 at 10:22:56PM +0800, Menglong Dong wrote: > > Replace kfree_skb() with kfree_skb_reason() in vxlan_xmit(). Following > > new skb drop reasons are introduced for vxlan: > > > > /* no remote found for xmit */ > > SKB_DROP_REASON_VXLAN_NO_REMOTE > > /* packet without necessary metadata reached a device which is in > > * "eternal" mode > > That should be "external" mode (with an "x"). > > > + /** > > + * @SKB_DROP_REASON_TUNNEL_TXINFO: packet without necessary metadata > > + * reached a device which is in "eternal" mode. > > Here too. > Oh, my eyes! I checked this document one by one, and I'm sure there are no more typos besides this one. And I'm sending the V7 now. Thanks! Menglong Dong > > + */ > > + SKB_DROP_REASON_TUNNEL_TXINFO, > > /** > > * @SKB_DROP_REASON_LOCAL_MAC: the source MAC address is equal to > > * the MAC address of the local netdev. > > -- > > 2.39.5 > > >
On Wed, Oct 9, 2024 at 9:37 AM Menglong Dong <menglong8.dong@gmail.com> wrote: > > On Wed, Oct 9, 2024 at 2:05 AM Guillaume Nault <gnault@redhat.com> wrote: > > > > On Tue, Oct 08, 2024 at 10:22:56PM +0800, Menglong Dong wrote: > > > Replace kfree_skb() with kfree_skb_reason() in vxlan_xmit(). Following > > > new skb drop reasons are introduced for vxlan: > > > > > > /* no remote found for xmit */ > > > SKB_DROP_REASON_VXLAN_NO_REMOTE > > > /* packet without necessary metadata reached a device which is in > > > * "eternal" mode > > > > That should be "external" mode (with an "x"). > > > > > + /** > > > + * @SKB_DROP_REASON_TUNNEL_TXINFO: packet without necessary metadata > > > + * reached a device which is in "eternal" mode. > > > > Here too. > > > > Oh, my eyes! > > I checked this document one by one, and I'm sure there > are no more typos besides this one. > You can try "codespell xxx.patch" to avoid typos easily before submitting patches.
On Wed, Oct 9, 2024 at 10:29 AM Jason Xing <kerneljasonxing@gmail.com> wrote: > > On Wed, Oct 9, 2024 at 9:37 AM Menglong Dong <menglong8.dong@gmail.com> wrote: > > > > On Wed, Oct 9, 2024 at 2:05 AM Guillaume Nault <gnault@redhat.com> wrote: > > > > > > On Tue, Oct 08, 2024 at 10:22:56PM +0800, Menglong Dong wrote: > > > > Replace kfree_skb() with kfree_skb_reason() in vxlan_xmit(). Following > > > > new skb drop reasons are introduced for vxlan: > > > > > > > > /* no remote found for xmit */ > > > > SKB_DROP_REASON_VXLAN_NO_REMOTE > > > > /* packet without necessary metadata reached a device which is in > > > > * "eternal" mode > > > > > > That should be "external" mode (with an "x"). > > > > > > > + /** > > > > + * @SKB_DROP_REASON_TUNNEL_TXINFO: packet without necessary metadata > > > > + * reached a device which is in "eternal" mode. > > > > > > Here too. > > > > > > > Oh, my eyes! > > > > I checked this document one by one, and I'm sure there > > are no more typos besides this one. > > > > You can try "codespell xxx.patch" to avoid typos easily before > submitting patches. That's a good idea! Thank you, xing~
diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c index 41191a28252a..b677ec901807 100644 --- a/drivers/net/vxlan/vxlan_core.c +++ b/drivers/net/vxlan/vxlan_core.c @@ -2730,7 +2730,7 @@ static netdev_tx_t vxlan_xmit(struct sk_buff *skb, struct net_device *dev) if (info && info->mode & IP_TUNNEL_INFO_TX) vxlan_xmit_one(skb, dev, vni, NULL, false); else - kfree_skb(skb); + kfree_skb_reason(skb, SKB_DROP_REASON_TUNNEL_TXINFO); return NETDEV_TX_OK; } } @@ -2793,7 +2793,7 @@ static netdev_tx_t vxlan_xmit(struct sk_buff *skb, struct net_device *dev) dev_core_stats_tx_dropped_inc(dev); vxlan_vnifilter_count(vxlan, vni, NULL, VXLAN_VNI_STATS_TX_DROPS, 0); - kfree_skb(skb); + kfree_skb_reason(skb, SKB_DROP_REASON_VXLAN_NO_REMOTE); return NETDEV_TX_OK; } } @@ -2816,7 +2816,7 @@ static netdev_tx_t vxlan_xmit(struct sk_buff *skb, struct net_device *dev) if (fdst) vxlan_xmit_one(skb, dev, vni, fdst, did_rsc); else - kfree_skb(skb); + kfree_skb_reason(skb, SKB_DROP_REASON_VXLAN_NO_REMOTE); } return NETDEV_TX_OK; diff --git a/include/net/dropreason-core.h b/include/net/dropreason-core.h index fbf92d442c1b..59c87b2a1ab9 100644 --- a/include/net/dropreason-core.h +++ b/include/net/dropreason-core.h @@ -96,7 +96,9 @@ FN(VXLAN_VNI_NOT_FOUND) \ FN(MAC_INVALID_SOURCE) \ FN(VXLAN_ENTRY_EXISTS) \ + FN(VXLAN_NO_REMOTE) \ FN(IP_TUNNEL_ECN) \ + FN(TUNNEL_TXINFO) \ FN(LOCAL_MAC) \ FNe(MAX) @@ -439,11 +441,18 @@ enum skb_drop_reason { * entry or an entry pointing to a nexthop. */ SKB_DROP_REASON_VXLAN_ENTRY_EXISTS, + /** @SKB_DROP_REASON_VXLAN_NO_REMOTE: no remote found for xmit */ + SKB_DROP_REASON_VXLAN_NO_REMOTE, /** * @SKB_DROP_REASON_IP_TUNNEL_ECN: skb is dropped according to * RFC 6040 4.2, see __INET_ECN_decapsulate() for detail. */ SKB_DROP_REASON_IP_TUNNEL_ECN, + /** + * @SKB_DROP_REASON_TUNNEL_TXINFO: packet without necessary metadata + * reached a device which is in "eternal" mode. + */ + SKB_DROP_REASON_TUNNEL_TXINFO, /** * @SKB_DROP_REASON_LOCAL_MAC: the source MAC address is equal to * the MAC address of the local netdev.