On 2/23/22 20:02, Jakub Kicinski wrote:
On Tue, 22 Feb 2022 02:52:29 +0000 Roopa Prabhu wrote:
quoted
@@ -164,7 +166,6 @@ int vxlan_vnilist_update_group(struct vxlan_dev *vxlan,
union vxlan_addr *new_remote_ip,
struct netlink_ext_ack *extack);
-
spurious
quoted
/* vxlan_multicast.c */
int vxlan_multicast_join(struct vxlan_dev *vxlan);
int vxlan_multicast_leave(struct vxlan_dev *vxlan);
+void vxlan_vnifilter_count(struct vxlan_dev *vxlan, __be32 vni,
+ int type, unsigned int len)
+{
+ struct vxlan_vni_node *vninode;
+
+ if (!(vxlan->cfg.flags & VXLAN_F_VNIFILTER))
+ return;
+
+ vninode = vxlan_vnifilter_lookup(vxlan, vni);
+ if (!vninode)
+ return;
Don't we end up calling vxlan_vnifilter_lookup() multiple times for
every packet? Can't we remember the vninode from vxlan_vs_find_vni()?
you are right, its done this way to not propagate vninode into vxlan_rcv.
let me see what we can do here.thanks