Lines Matching refs:rd
353 struct vxlan_rdst *rd, int type) in vxlan_fdb_notify() argument
363 err = vxlan_fdb_info(skb, vxlan, fdb, 0, 0, type, 0, rd); in vxlan_fdb_notify()
457 struct vxlan_rdst *rd; in vxlan_fdb_find_rdst() local
459 list_for_each_entry(rd, &f->remotes, list) { in vxlan_fdb_find_rdst()
460 if (vxlan_addr_equal(&rd->remote_ip, ip) && in vxlan_fdb_find_rdst()
461 rd->remote_port == port && in vxlan_fdb_find_rdst()
462 rd->remote_vni == vni && in vxlan_fdb_find_rdst()
463 rd->remote_ifindex == ifindex) in vxlan_fdb_find_rdst()
464 return rd; in vxlan_fdb_find_rdst()
474 struct vxlan_rdst *rd; in vxlan_fdb_replace() local
476 rd = vxlan_fdb_find_rdst(f, ip, port, vni, ifindex); in vxlan_fdb_replace()
477 if (rd) in vxlan_fdb_replace()
480 rd = list_first_entry_or_null(&f->remotes, struct vxlan_rdst, list); in vxlan_fdb_replace()
481 if (!rd) in vxlan_fdb_replace()
483 rd->remote_ip = *ip; in vxlan_fdb_replace()
484 rd->remote_port = port; in vxlan_fdb_replace()
485 rd->remote_vni = vni; in vxlan_fdb_replace()
486 rd->remote_ifindex = ifindex; in vxlan_fdb_replace()
495 struct vxlan_rdst *rd; in vxlan_fdb_append() local
497 rd = vxlan_fdb_find_rdst(f, ip, port, vni, ifindex); in vxlan_fdb_append()
498 if (rd) in vxlan_fdb_append()
501 rd = kmalloc(sizeof(*rd), GFP_ATOMIC); in vxlan_fdb_append()
502 if (rd == NULL) in vxlan_fdb_append()
504 rd->remote_ip = *ip; in vxlan_fdb_append()
505 rd->remote_port = port; in vxlan_fdb_append()
506 rd->remote_vni = vni; in vxlan_fdb_append()
507 rd->remote_ifindex = ifindex; in vxlan_fdb_append()
509 list_add_tail_rcu(&rd->list, &f->remotes); in vxlan_fdb_append()
511 *rdp = rd; in vxlan_fdb_append()
666 struct vxlan_rdst *rd = NULL; in vxlan_fdb_create() local
700 &rd); in vxlan_fdb_create()
731 vxlan_fdb_append(f, ip, port, vni, ifindex, &rd); in vxlan_fdb_create()
739 if (rd == NULL) in vxlan_fdb_create()
740 rd = first_remote_rtnl(f); in vxlan_fdb_create()
741 vxlan_fdb_notify(vxlan, f, rd, RTM_NEWNEIGH); in vxlan_fdb_create()
750 struct vxlan_rdst *rd, *nd; in vxlan_fdb_free() local
752 list_for_each_entry_safe(rd, nd, &f->remotes, list) in vxlan_fdb_free()
753 kfree(rd); in vxlan_fdb_free()
867 struct vxlan_rdst *rd = NULL; in vxlan_fdb_delete() local
885 rd = vxlan_fdb_find_rdst(f, &ip, port, vni, ifindex); in vxlan_fdb_delete()
886 if (!rd) in vxlan_fdb_delete()
895 if (rd && !list_is_singular(&f->remotes)) { in vxlan_fdb_delete()
896 list_del_rcu(&rd->list); in vxlan_fdb_delete()
897 vxlan_fdb_notify(vxlan, f, rd, RTM_DELNEIGH); in vxlan_fdb_delete()
898 kfree_rcu(rd, rcu); in vxlan_fdb_delete()
923 struct vxlan_rdst *rd; in vxlan_fdb_dump() local
925 list_for_each_entry_rcu(rd, &f->remotes, list) { in vxlan_fdb_dump()
933 NLM_F_MULTI, rd); in vxlan_fdb_dump()