#include <linux/kernel.h>
#include <net/net_namespace.h>
#include <net/sock.h>
#include <linux/igmp.h>
#include <net/vxlan.h>
#include "vxlan_private.h"
int vxlan_igmp_join(struct vxlan_dev *vxlan, union vxlan_addr *rip,
int rifindex)
{ … }
int vxlan_igmp_leave(struct vxlan_dev *vxlan, union vxlan_addr *rip,
int rifindex)
{ … }
static bool vxlan_group_used_match(union vxlan_addr *ip, int ifindex,
union vxlan_addr *rip, int rifindex)
{ … }
static bool vxlan_group_used_by_vnifilter(struct vxlan_dev *vxlan,
union vxlan_addr *ip, int ifindex)
{ … }
bool vxlan_group_used(struct vxlan_net *vn, struct vxlan_dev *dev,
__be32 vni, union vxlan_addr *rip, int rifindex)
{ … }
static int vxlan_multicast_join_vnigrp(struct vxlan_dev *vxlan)
{ … }
static int vxlan_multicast_leave_vnigrp(struct vxlan_dev *vxlan)
{ … }
int vxlan_multicast_join(struct vxlan_dev *vxlan)
{ … }
int vxlan_multicast_leave(struct vxlan_dev *vxlan)
{ … }