Lines Matching refs:vxlan
78 static int vxlan_sock_add(struct vxlan_dev *vxlan);
247 struct vxlan_dev *vxlan; in vxlan_vs_find_vni() local
249 hlist_for_each_entry_rcu(vxlan, vni_head(vs, id), hlist) { in vxlan_vs_find_vni()
250 if (vxlan->default_dst.remote_vni == id) in vxlan_vs_find_vni()
251 return vxlan; in vxlan_vs_find_vni()
272 static int vxlan_fdb_info(struct sk_buff *skb, struct vxlan_dev *vxlan, in vxlan_fdb_info() argument
299 ndm->ndm_ifindex = vxlan->dev->ifindex; in vxlan_fdb_info()
303 if (!net_eq(dev_net(vxlan->dev), vxlan->net) && in vxlan_fdb_info()
305 peernet2id_alloc(dev_net(vxlan->dev), vxlan->net))) in vxlan_fdb_info()
314 if (rdst->remote_port && rdst->remote_port != vxlan->cfg.dst_port && in vxlan_fdb_info()
317 if (rdst->remote_vni != vxlan->default_dst.remote_vni && in vxlan_fdb_info()
352 static void vxlan_fdb_notify(struct vxlan_dev *vxlan, struct vxlan_fdb *fdb, in vxlan_fdb_notify() argument
355 struct net *net = dev_net(vxlan->dev); in vxlan_fdb_notify()
363 err = vxlan_fdb_info(skb, vxlan, fdb, 0, 0, type, 0, rd); in vxlan_fdb_notify()
380 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_ip_miss() local
389 vxlan_fdb_notify(vxlan, &f, &remote, RTM_GETNEIGH); in vxlan_ip_miss()
392 static void vxlan_fdb_miss(struct vxlan_dev *vxlan, const u8 eth_addr[ETH_ALEN]) in vxlan_fdb_miss() argument
401 vxlan_fdb_notify(vxlan, &f, &remote, RTM_GETNEIGH); in vxlan_fdb_miss()
419 static inline struct hlist_head *vxlan_fdb_head(struct vxlan_dev *vxlan, in vxlan_fdb_head() argument
422 return &vxlan->fdb_head[eth_hash(mac)]; in vxlan_fdb_head()
426 static struct vxlan_fdb *__vxlan_find_mac(struct vxlan_dev *vxlan, in __vxlan_find_mac() argument
429 struct hlist_head *head = vxlan_fdb_head(vxlan, mac); in __vxlan_find_mac()
440 static struct vxlan_fdb *vxlan_find_mac(struct vxlan_dev *vxlan, in vxlan_find_mac() argument
445 f = __vxlan_find_mac(vxlan, mac); in vxlan_find_mac()
660 static int vxlan_fdb_create(struct vxlan_dev *vxlan, in vxlan_fdb_create() argument
670 f = __vxlan_find_mac(vxlan, mac); in vxlan_fdb_create()
673 netdev_dbg(vxlan->dev, in vxlan_fdb_create()
710 if (vxlan->cfg.addrmax && in vxlan_fdb_create()
711 vxlan->addrcnt >= vxlan->cfg.addrmax) in vxlan_fdb_create()
719 netdev_dbg(vxlan->dev, "add %pM -> %pIS\n", mac, ip); in vxlan_fdb_create()
733 ++vxlan->addrcnt; in vxlan_fdb_create()
735 vxlan_fdb_head(vxlan, mac)); in vxlan_fdb_create()
741 vxlan_fdb_notify(vxlan, f, rd, RTM_NEWNEIGH); in vxlan_fdb_create()
757 static void vxlan_fdb_destroy(struct vxlan_dev *vxlan, struct vxlan_fdb *f) in vxlan_fdb_destroy() argument
759 netdev_dbg(vxlan->dev, in vxlan_fdb_destroy()
762 --vxlan->addrcnt; in vxlan_fdb_destroy()
763 vxlan_fdb_notify(vxlan, f, first_remote_rtnl(f), RTM_DELNEIGH); in vxlan_fdb_destroy()
769 static int vxlan_fdb_parse(struct nlattr *tb[], struct vxlan_dev *vxlan, in vxlan_fdb_parse() argument
772 struct net *net = dev_net(vxlan->dev); in vxlan_fdb_parse()
780 union vxlan_addr *remote = &vxlan->default_dst.remote_ip; in vxlan_fdb_parse()
797 *port = vxlan->cfg.dst_port; in vxlan_fdb_parse()
805 *vni = vxlan->default_dst.remote_vni; in vxlan_fdb_parse()
829 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_fdb_add() local
845 err = vxlan_fdb_parse(tb, vxlan, &ip, &port, &vni, &ifindex); in vxlan_fdb_add()
849 if (vxlan->default_dst.remote_ip.sa.sa_family != ip.sa.sa_family) in vxlan_fdb_add()
852 spin_lock_bh(&vxlan->hash_lock); in vxlan_fdb_add()
853 err = vxlan_fdb_create(vxlan, addr, &ip, ndm->ndm_state, flags, in vxlan_fdb_add()
855 spin_unlock_bh(&vxlan->hash_lock); in vxlan_fdb_add()
865 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_fdb_delete() local
873 err = vxlan_fdb_parse(tb, vxlan, &ip, &port, &vni, &ifindex); in vxlan_fdb_delete()
879 spin_lock_bh(&vxlan->hash_lock); in vxlan_fdb_delete()
880 f = vxlan_find_mac(vxlan, addr); in vxlan_fdb_delete()
897 vxlan_fdb_notify(vxlan, f, rd, RTM_DELNEIGH); in vxlan_fdb_delete()
902 vxlan_fdb_destroy(vxlan, f); in vxlan_fdb_delete()
905 spin_unlock_bh(&vxlan->hash_lock); in vxlan_fdb_delete()
915 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_fdb_dump() local
922 hlist_for_each_entry_rcu(f, &vxlan->fdb_head[h], hlist) { in vxlan_fdb_dump()
929 err = vxlan_fdb_info(skb, vxlan, f, in vxlan_fdb_dump()
952 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_snoop() local
955 f = vxlan_find_mac(vxlan, src_mac); in vxlan_snoop()
973 vxlan_fdb_notify(vxlan, f, rdst, RTM_NEWNEIGH); in vxlan_snoop()
976 spin_lock(&vxlan->hash_lock); in vxlan_snoop()
980 vxlan_fdb_create(vxlan, src_mac, src_ip, in vxlan_snoop()
983 vxlan->cfg.dst_port, in vxlan_snoop()
984 vxlan->default_dst.remote_vni, in vxlan_snoop()
986 spin_unlock(&vxlan->hash_lock); in vxlan_snoop()
995 struct vxlan_dev *vxlan; in vxlan_group_used() local
1010 list_for_each_entry(vxlan, &vn->vxlan_list, next) { in vxlan_group_used()
1011 if (!netif_running(vxlan->dev) || vxlan == dev) in vxlan_group_used()
1014 if (family == AF_INET && vxlan->vn4_sock != dev->vn4_sock) in vxlan_group_used()
1017 if (family == AF_INET6 && vxlan->vn6_sock != dev->vn6_sock) in vxlan_group_used()
1021 if (!vxlan_addr_equal(&vxlan->default_dst.remote_ip, in vxlan_group_used()
1025 if (vxlan->default_dst.remote_ifindex != in vxlan_group_used()
1053 static void vxlan_sock_release(struct vxlan_dev *vxlan) in vxlan_sock_release() argument
1055 __vxlan_sock_release(vxlan->vn4_sock); in vxlan_sock_release()
1057 __vxlan_sock_release(vxlan->vn6_sock); in vxlan_sock_release()
1064 static int vxlan_igmp_join(struct vxlan_dev *vxlan) in vxlan_igmp_join() argument
1067 union vxlan_addr *ip = &vxlan->default_dst.remote_ip; in vxlan_igmp_join()
1068 int ifindex = vxlan->default_dst.remote_ifindex; in vxlan_igmp_join()
1077 sk = vxlan->vn4_sock->sock->sk; in vxlan_igmp_join()
1083 sk = vxlan->vn6_sock->sock->sk; in vxlan_igmp_join()
1095 static int vxlan_igmp_leave(struct vxlan_dev *vxlan) in vxlan_igmp_leave() argument
1098 union vxlan_addr *ip = &vxlan->default_dst.remote_ip; in vxlan_igmp_leave()
1099 int ifindex = vxlan->default_dst.remote_ifindex; in vxlan_igmp_leave()
1108 sk = vxlan->vn4_sock->sock->sk; in vxlan_igmp_leave()
1114 sk = vxlan->vn6_sock->sock->sk; in vxlan_igmp_leave()
1157 struct vxlan_dev *vxlan; in vxlan_rcv() local
1167 vxlan = vxlan_vs_find_vni(vs, vni); in vxlan_rcv()
1168 if (!vxlan) in vxlan_rcv()
1172 skb_scrub_packet(skb, !net_eq(vxlan->net, dev_net(vxlan->dev))); in vxlan_rcv()
1173 skb->protocol = eth_type_trans(skb, vxlan->dev); in vxlan_rcv()
1177 if (ether_addr_equal(eth_hdr(skb)->h_source, vxlan->dev->dev_addr)) in vxlan_rcv()
1198 if ((vxlan->flags & VXLAN_F_LEARN) && in vxlan_rcv()
1222 ++vxlan->dev->stats.rx_frame_errors; in vxlan_rcv()
1223 ++vxlan->dev->stats.rx_errors; in vxlan_rcv()
1228 stats = this_cpu_ptr(vxlan->dev->tstats); in vxlan_rcv()
1234 gro_cells_receive(&vxlan->gro_cells, skb); in vxlan_rcv()
1352 struct vxlan_dev *vxlan = netdev_priv(dev); in arp_reduce() local
1397 f = vxlan_find_mac(vxlan, n->ha); in arp_reduce()
1419 } else if (vxlan->flags & VXLAN_F_L3MISS) { in arp_reduce()
1523 struct vxlan_dev *vxlan = netdev_priv(dev); in neigh_reduce() local
1558 f = vxlan_find_mac(vxlan, n->ha); in neigh_reduce()
1576 } else if (vxlan->flags & VXLAN_F_L3MISS) { in neigh_reduce()
1593 struct vxlan_dev *vxlan = netdev_priv(dev); in route_shortcircuit() local
1609 if (!n && (vxlan->flags & VXLAN_F_L3MISS)) { in route_shortcircuit()
1630 if (!n && (vxlan->flags & VXLAN_F_L3MISS)) { in route_shortcircuit()
1846 static struct dst_entry *vxlan6_get_route(struct vxlan_dev *vxlan, in vxlan6_get_route() argument
1858 fl6.saddr = vxlan->cfg.saddr.sin6.sin6_addr; in vxlan6_get_route()
1862 err = ipv6_stub->ipv6_dst_lookup(vxlan->net, in vxlan6_get_route()
1863 vxlan->vn6_sock->sock->sk, in vxlan6_get_route()
1922 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_xmit_one() local
1936 u32 flags = vxlan->flags; in vxlan_xmit_one()
1941 dst_port = rdst->remote_port ? rdst->remote_port : vxlan->cfg.dst_port; in vxlan_xmit_one()
1950 dst_port = info->key.tp_dst ? : vxlan->cfg.dst_port; in vxlan_xmit_one()
1963 vxlan_encap_bypass(skb, vxlan, vxlan); in vxlan_xmit_one()
1971 ttl = vxlan->cfg.ttl; in vxlan_xmit_one()
1975 tos = vxlan->cfg.tos; in vxlan_xmit_one()
1979 src_port = udp_flow_src_port(dev_net(dev), skb, vxlan->cfg.port_min, in vxlan_xmit_one()
1980 vxlan->cfg.port_max, true); in vxlan_xmit_one()
1993 if (!vxlan->vn4_sock) in vxlan_xmit_one()
1995 sk = vxlan->vn4_sock->sock->sk; in vxlan_xmit_one()
2013 fl4.saddr = vxlan->cfg.saddr.sin.sin_addr.s_addr; in vxlan_xmit_one()
2015 rt = ip_route_output_key(vxlan->net, &fl4); in vxlan_xmit_one()
2036 dst_vxlan = vxlan_find_vni(vxlan->net, vni, in vxlan_xmit_one()
2038 vxlan->flags); in vxlan_xmit_one()
2041 vxlan_encap_bypass(skb, vxlan, dst_vxlan); in vxlan_xmit_one()
2050 !net_eq(vxlan->net, dev_net(vxlan->dev)), in vxlan_xmit_one()
2065 if (!vxlan->vn6_sock) in vxlan_xmit_one()
2067 sk = vxlan->vn6_sock->sock->sk; in vxlan_xmit_one()
2069 ndst = vxlan6_get_route(vxlan, skb, in vxlan_xmit_one()
2094 dst_vxlan = vxlan_find_vni(vxlan->net, vni, in vxlan_xmit_one()
2096 vxlan->flags); in vxlan_xmit_one()
2099 vxlan_encap_bypass(skb, vxlan, dst_vxlan); in vxlan_xmit_one()
2113 !net_eq(vxlan->net, dev_net(vxlan->dev)), in vxlan_xmit_one()
2140 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_xmit() local
2152 if ((vxlan->flags & VXLAN_F_PROXY)) { in vxlan_xmit()
2171 if (vxlan->flags & VXLAN_F_COLLECT_METADATA && in vxlan_xmit()
2177 f = vxlan_find_mac(vxlan, eth->h_dest); in vxlan_xmit()
2180 if (f && (f->flags & NTF_ROUTER) && (vxlan->flags & VXLAN_F_RSC) && in vxlan_xmit()
2185 f = vxlan_find_mac(vxlan, eth->h_dest); in vxlan_xmit()
2189 f = vxlan_find_mac(vxlan, all_zeros_mac); in vxlan_xmit()
2191 if ((vxlan->flags & VXLAN_F_L2MISS) && in vxlan_xmit()
2193 vxlan_fdb_miss(vxlan, eth->h_dest); in vxlan_xmit()
2223 struct vxlan_dev *vxlan = (struct vxlan_dev *) arg; in vxlan_cleanup() local
2227 if (!netif_running(vxlan->dev)) in vxlan_cleanup()
2233 spin_lock_bh(&vxlan->hash_lock); in vxlan_cleanup()
2234 hlist_for_each_safe(p, n, &vxlan->fdb_head[h]) { in vxlan_cleanup()
2242 timeout = f->used + vxlan->cfg.age_interval * HZ; in vxlan_cleanup()
2244 netdev_dbg(vxlan->dev, in vxlan_cleanup()
2248 vxlan_fdb_destroy(vxlan, f); in vxlan_cleanup()
2252 spin_unlock_bh(&vxlan->hash_lock); in vxlan_cleanup()
2255 mod_timer(&vxlan->age_timer, next_timer); in vxlan_cleanup()
2258 static void vxlan_vs_add_dev(struct vxlan_sock *vs, struct vxlan_dev *vxlan) in vxlan_vs_add_dev() argument
2260 struct vxlan_net *vn = net_generic(vxlan->net, vxlan_net_id); in vxlan_vs_add_dev()
2261 __u32 vni = vxlan->default_dst.remote_vni; in vxlan_vs_add_dev()
2264 hlist_add_head_rcu(&vxlan->hlist, vni_head(vs, vni)); in vxlan_vs_add_dev()
2278 static void vxlan_fdb_delete_default(struct vxlan_dev *vxlan) in vxlan_fdb_delete_default() argument
2282 spin_lock_bh(&vxlan->hash_lock); in vxlan_fdb_delete_default()
2283 f = __vxlan_find_mac(vxlan, all_zeros_mac); in vxlan_fdb_delete_default()
2285 vxlan_fdb_destroy(vxlan, f); in vxlan_fdb_delete_default()
2286 spin_unlock_bh(&vxlan->hash_lock); in vxlan_fdb_delete_default()
2291 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_uninit() local
2293 vxlan_fdb_delete_default(vxlan); in vxlan_uninit()
2301 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_open() local
2304 ret = vxlan_sock_add(vxlan); in vxlan_open()
2308 if (vxlan_addr_multicast(&vxlan->default_dst.remote_ip)) { in vxlan_open()
2309 ret = vxlan_igmp_join(vxlan); in vxlan_open()
2313 vxlan_sock_release(vxlan); in vxlan_open()
2318 if (vxlan->cfg.age_interval) in vxlan_open()
2319 mod_timer(&vxlan->age_timer, jiffies + FDB_AGE_INTERVAL); in vxlan_open()
2325 static void vxlan_flush(struct vxlan_dev *vxlan) in vxlan_flush() argument
2329 spin_lock_bh(&vxlan->hash_lock); in vxlan_flush()
2332 hlist_for_each_safe(p, n, &vxlan->fdb_head[h]) { in vxlan_flush()
2337 vxlan_fdb_destroy(vxlan, f); in vxlan_flush()
2340 spin_unlock_bh(&vxlan->hash_lock); in vxlan_flush()
2346 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_stop() local
2347 struct vxlan_net *vn = net_generic(vxlan->net, vxlan_net_id); in vxlan_stop()
2350 if (vxlan_addr_multicast(&vxlan->default_dst.remote_ip) && in vxlan_stop()
2351 !vxlan_group_used(vn, vxlan)) in vxlan_stop()
2352 ret = vxlan_igmp_leave(vxlan); in vxlan_stop()
2354 del_timer_sync(&vxlan->age_timer); in vxlan_stop()
2356 vxlan_flush(vxlan); in vxlan_stop()
2357 vxlan_sock_release(vxlan); in vxlan_stop()
2397 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_change_mtu() local
2398 struct vxlan_rdst *dst = &vxlan->default_dst; in vxlan_change_mtu()
2399 struct net_device *lowerdev = __dev_get_by_index(vxlan->net, in vxlan_change_mtu()
2408 struct vxlan_dev *vxlan = netdev_priv(dev); in egress_ipv4_tun_info() local
2418 rt = ip_route_output_key(vxlan->net, &fl4); in egress_ipv4_tun_info()
2431 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_fill_metadata_dst() local
2435 sport = udp_flow_src_port(dev_net(dev), skb, vxlan->cfg.port_min, in vxlan_fill_metadata_dst()
2436 vxlan->cfg.port_max, true); in vxlan_fill_metadata_dst()
2437 dport = info->key.tp_dst ? : vxlan->cfg.dst_port; in vxlan_fill_metadata_dst()
2440 if (!vxlan->vn4_sock) in vxlan_fill_metadata_dst()
2447 if (!vxlan->vn6_sock) in vxlan_fill_metadata_dst()
2449 ndst = vxlan6_get_route(vxlan, skb, 0, in vxlan_fill_metadata_dst()
2516 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_setup() local
2539 INIT_LIST_HEAD(&vxlan->next); in vxlan_setup()
2540 spin_lock_init(&vxlan->hash_lock); in vxlan_setup()
2542 init_timer_deferrable(&vxlan->age_timer); in vxlan_setup()
2543 vxlan->age_timer.function = vxlan_cleanup; in vxlan_setup()
2544 vxlan->age_timer.data = (unsigned long) vxlan; in vxlan_setup()
2546 vxlan->cfg.dst_port = htons(vxlan_port); in vxlan_setup()
2548 vxlan->dev = dev; in vxlan_setup()
2550 gro_cells_init(&vxlan->gro_cells, dev); in vxlan_setup()
2553 INIT_HLIST_HEAD(&vxlan->fdb_head[h]); in vxlan_setup()
2720 static int __vxlan_sock_add(struct vxlan_dev *vxlan, bool ipv6) in __vxlan_sock_add() argument
2722 struct vxlan_net *vn = net_generic(vxlan->net, vxlan_net_id); in __vxlan_sock_add()
2725 if (!vxlan->cfg.no_share) { in __vxlan_sock_add()
2727 vs = vxlan_find_sock(vxlan->net, ipv6 ? AF_INET6 : AF_INET, in __vxlan_sock_add()
2728 vxlan->cfg.dst_port, vxlan->flags); in __vxlan_sock_add()
2736 vs = vxlan_socket_create(vxlan->net, ipv6, in __vxlan_sock_add()
2737 vxlan->cfg.dst_port, vxlan->flags); in __vxlan_sock_add()
2742 vxlan->vn6_sock = vs; in __vxlan_sock_add()
2745 vxlan->vn4_sock = vs; in __vxlan_sock_add()
2746 vxlan_vs_add_dev(vs, vxlan); in __vxlan_sock_add()
2750 static int vxlan_sock_add(struct vxlan_dev *vxlan) in vxlan_sock_add() argument
2752 bool ipv6 = vxlan->flags & VXLAN_F_IPV6; in vxlan_sock_add()
2753 bool metadata = vxlan->flags & VXLAN_F_COLLECT_METADATA; in vxlan_sock_add()
2756 vxlan->vn4_sock = NULL; in vxlan_sock_add()
2758 vxlan->vn6_sock = NULL; in vxlan_sock_add()
2760 ret = __vxlan_sock_add(vxlan, true); in vxlan_sock_add()
2763 ret = __vxlan_sock_add(vxlan, false); in vxlan_sock_add()
2765 vxlan_sock_release(vxlan); in vxlan_sock_add()
2773 struct vxlan_dev *vxlan = netdev_priv(dev), *tmp; in vxlan_dev_configure() local
2774 struct vxlan_rdst *dst = &vxlan->default_dst; in vxlan_dev_configure()
2778 __be16 default_port = vxlan->cfg.dst_port; in vxlan_dev_configure()
2781 vxlan->net = src_net; in vxlan_dev_configure()
2792 vxlan->cfg.saddr.sa.sa_family == AF_INET6) { in vxlan_dev_configure()
2796 vxlan->flags |= VXLAN_F_IPV6; in vxlan_dev_configure()
2836 memcpy(&vxlan->cfg, conf, sizeof(*conf)); in vxlan_dev_configure()
2837 if (!vxlan->cfg.dst_port) in vxlan_dev_configure()
2838 vxlan->cfg.dst_port = default_port; in vxlan_dev_configure()
2839 vxlan->flags |= conf->flags; in vxlan_dev_configure()
2841 if (!vxlan->cfg.age_interval) in vxlan_dev_configure()
2842 vxlan->cfg.age_interval = FDB_AGE_DEFAULT; in vxlan_dev_configure()
2848 tmp->cfg.dst_port == vxlan->cfg.dst_port && in vxlan_dev_configure()
2850 (vxlan->flags & VXLAN_F_RCV_FLAGS)) in vxlan_dev_configure()
2857 if (!vxlan_addr_any(&vxlan->default_dst.remote_ip)) { in vxlan_dev_configure()
2858 err = vxlan_fdb_create(vxlan, all_zeros_mac, in vxlan_dev_configure()
2859 &vxlan->default_dst.remote_ip, in vxlan_dev_configure()
2862 vxlan->cfg.dst_port, in vxlan_dev_configure()
2863 vxlan->default_dst.remote_vni, in vxlan_dev_configure()
2864 vxlan->default_dst.remote_ifindex, in vxlan_dev_configure()
2872 vxlan_fdb_delete_default(vxlan); in vxlan_dev_configure()
2876 list_add(&vxlan->next, &vn->vxlan_list); in vxlan_dev_configure()
3030 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_dellink() local
3031 struct vxlan_net *vn = net_generic(vxlan->net, vxlan_net_id); in vxlan_dellink()
3034 if (!hlist_unhashed(&vxlan->hlist)) in vxlan_dellink()
3035 hlist_del_rcu(&vxlan->hlist); in vxlan_dellink()
3038 gro_cells_destroy(&vxlan->gro_cells); in vxlan_dellink()
3039 list_del(&vxlan->next); in vxlan_dellink()
3072 const struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_fill_info() local
3073 const struct vxlan_rdst *dst = &vxlan->default_dst; in vxlan_fill_info()
3075 .low = htons(vxlan->cfg.port_min), in vxlan_fill_info()
3076 .high = htons(vxlan->cfg.port_max), in vxlan_fill_info()
3099 if (!vxlan_addr_any(&vxlan->cfg.saddr)) { in vxlan_fill_info()
3100 if (vxlan->cfg.saddr.sa.sa_family == AF_INET) { in vxlan_fill_info()
3102 vxlan->cfg.saddr.sin.sin_addr.s_addr)) in vxlan_fill_info()
3107 &vxlan->cfg.saddr.sin6.sin6_addr)) in vxlan_fill_info()
3113 if (nla_put_u8(skb, IFLA_VXLAN_TTL, vxlan->cfg.ttl) || in vxlan_fill_info()
3114 nla_put_u8(skb, IFLA_VXLAN_TOS, vxlan->cfg.tos) || in vxlan_fill_info()
3116 !!(vxlan->flags & VXLAN_F_LEARN)) || in vxlan_fill_info()
3118 !!(vxlan->flags & VXLAN_F_PROXY)) || in vxlan_fill_info()
3119 nla_put_u8(skb, IFLA_VXLAN_RSC, !!(vxlan->flags & VXLAN_F_RSC)) || in vxlan_fill_info()
3121 !!(vxlan->flags & VXLAN_F_L2MISS)) || in vxlan_fill_info()
3123 !!(vxlan->flags & VXLAN_F_L3MISS)) || in vxlan_fill_info()
3125 !!(vxlan->flags & VXLAN_F_COLLECT_METADATA)) || in vxlan_fill_info()
3126 nla_put_u32(skb, IFLA_VXLAN_AGEING, vxlan->cfg.age_interval) || in vxlan_fill_info()
3127 nla_put_u32(skb, IFLA_VXLAN_LIMIT, vxlan->cfg.addrmax) || in vxlan_fill_info()
3128 nla_put_be16(skb, IFLA_VXLAN_PORT, vxlan->cfg.dst_port) || in vxlan_fill_info()
3130 !!(vxlan->flags & VXLAN_F_UDP_CSUM)) || in vxlan_fill_info()
3132 !!(vxlan->flags & VXLAN_F_UDP_ZERO_CSUM6_TX)) || in vxlan_fill_info()
3134 !!(vxlan->flags & VXLAN_F_UDP_ZERO_CSUM6_RX)) || in vxlan_fill_info()
3136 !!(vxlan->flags & VXLAN_F_REMCSUM_TX)) || in vxlan_fill_info()
3138 !!(vxlan->flags & VXLAN_F_REMCSUM_RX))) in vxlan_fill_info()
3144 if (vxlan->flags & VXLAN_F_GBP && in vxlan_fill_info()
3148 if (vxlan->flags & VXLAN_F_REMCSUM_NOPARTIAL && in vxlan_fill_info()
3160 struct vxlan_dev *vxlan = netdev_priv(dev); in vxlan_get_link_net() local
3162 return vxlan->net; in vxlan_get_link_net()
3182 struct vxlan_dev *vxlan, *next; in vxlan_handle_lowerdev_unregister() local
3185 list_for_each_entry_safe(vxlan, next, &vn->vxlan_list, next) { in vxlan_handle_lowerdev_unregister()
3186 struct vxlan_rdst *dst = &vxlan->default_dst; in vxlan_handle_lowerdev_unregister()
3195 vxlan_dellink(vxlan->dev, &list_kill); in vxlan_handle_lowerdev_unregister()
3234 struct vxlan_dev *vxlan, *next; in vxlan_exit_net() local
3243 list_for_each_entry_safe(vxlan, next, &vn->vxlan_list, next) { in vxlan_exit_net()
3247 if (!net_eq(dev_net(vxlan->dev), net)) { in vxlan_exit_net()
3248 gro_cells_destroy(&vxlan->gro_cells); in vxlan_exit_net()
3249 unregister_netdevice_queue(vxlan->dev, &list); in vxlan_exit_net()