Lines Matching refs:rd

387 			     struct vxlan_rdst *rd, int type)  in vxlan_fdb_notify()  argument
397 err = vxlan_fdb_info(skb, vxlan, fdb, 0, 0, type, 0, rd); in vxlan_fdb_notify()
491 struct vxlan_rdst *rd; in vxlan_fdb_find_rdst() local
493 list_for_each_entry(rd, &f->remotes, list) { in vxlan_fdb_find_rdst()
494 if (vxlan_addr_equal(&rd->remote_ip, ip) && in vxlan_fdb_find_rdst()
495 rd->remote_port == port && in vxlan_fdb_find_rdst()
496 rd->remote_vni == vni && in vxlan_fdb_find_rdst()
497 rd->remote_ifindex == ifindex) in vxlan_fdb_find_rdst()
498 return rd; in vxlan_fdb_find_rdst()
508 struct vxlan_rdst *rd; in vxlan_fdb_replace() local
510 rd = vxlan_fdb_find_rdst(f, ip, port, vni, ifindex); in vxlan_fdb_replace()
511 if (rd) in vxlan_fdb_replace()
514 rd = list_first_entry_or_null(&f->remotes, struct vxlan_rdst, list); in vxlan_fdb_replace()
515 if (!rd) in vxlan_fdb_replace()
517 rd->remote_ip = *ip; in vxlan_fdb_replace()
518 rd->remote_port = port; in vxlan_fdb_replace()
519 rd->remote_vni = vni; in vxlan_fdb_replace()
520 rd->remote_ifindex = ifindex; in vxlan_fdb_replace()
529 struct vxlan_rdst *rd; in vxlan_fdb_append() local
531 rd = vxlan_fdb_find_rdst(f, ip, port, vni, ifindex); in vxlan_fdb_append()
532 if (rd) in vxlan_fdb_append()
535 rd = kmalloc(sizeof(*rd), GFP_ATOMIC); in vxlan_fdb_append()
536 if (rd == NULL) in vxlan_fdb_append()
538 rd->remote_ip = *ip; in vxlan_fdb_append()
539 rd->remote_port = port; in vxlan_fdb_append()
540 rd->remote_vni = vni; in vxlan_fdb_append()
541 rd->remote_ifindex = ifindex; in vxlan_fdb_append()
543 list_add_tail_rcu(&rd->list, &f->remotes); in vxlan_fdb_append()
545 *rdp = rd; in vxlan_fdb_append()
708 struct vxlan_rdst *rd = NULL; in vxlan_fdb_create() local
742 &rd); in vxlan_fdb_create()
772 vxlan_fdb_append(f, ip, port, vni, ifindex, &rd); in vxlan_fdb_create()
780 if (rd == NULL) in vxlan_fdb_create()
781 rd = first_remote_rtnl(f); in vxlan_fdb_create()
782 vxlan_fdb_notify(vxlan, f, rd, RTM_NEWNEIGH); in vxlan_fdb_create()
791 struct vxlan_rdst *rd, *nd; in vxlan_fdb_free() local
793 list_for_each_entry_safe(rd, nd, &f->remotes, list) in vxlan_fdb_free()
794 kfree(rd); in vxlan_fdb_free()
908 struct vxlan_rdst *rd = NULL; in vxlan_fdb_delete() local
926 rd = vxlan_fdb_find_rdst(f, &ip, port, vni, ifindex); in vxlan_fdb_delete()
927 if (!rd) in vxlan_fdb_delete()
936 if (rd && !list_is_singular(&f->remotes)) { in vxlan_fdb_delete()
937 list_del_rcu(&rd->list); in vxlan_fdb_delete()
938 vxlan_fdb_notify(vxlan, f, rd, RTM_DELNEIGH); in vxlan_fdb_delete()
939 kfree_rcu(rd, rcu); in vxlan_fdb_delete()
964 struct vxlan_rdst *rd; in vxlan_fdb_dump() local
969 list_for_each_entry_rcu(rd, &f->remotes, list) { in vxlan_fdb_dump()
974 NLM_F_MULTI, rd); in vxlan_fdb_dump()