Lines Matching refs:dev_addr
147 static int ib_nl_ip_send_msg(struct rdma_dev_addr *dev_addr, in ib_nl_ip_send_msg() argument
183 header->ifindex = dev_addr->bound_dev_if; in ib_nl_ip_send_msg()
236 void rdma_copy_src_l2_addr(struct rdma_dev_addr *dev_addr, in rdma_copy_src_l2_addr() argument
239 dev_addr->dev_type = dev->type; in rdma_copy_src_l2_addr()
240 memcpy(dev_addr->src_dev_addr, dev->dev_addr, MAX_ADDR_LEN); in rdma_copy_src_l2_addr()
241 memcpy(dev_addr->broadcast, dev->broadcast, MAX_ADDR_LEN); in rdma_copy_src_l2_addr()
242 dev_addr->bound_dev_if = dev->ifindex; in rdma_copy_src_l2_addr()
277 struct rdma_dev_addr *dev_addr) in rdma_translate_ip() argument
281 if (dev_addr->bound_dev_if) { in rdma_translate_ip()
282 dev = dev_get_by_index(dev_addr->net, dev_addr->bound_dev_if); in rdma_translate_ip()
285 rdma_copy_src_l2_addr(dev_addr, dev); in rdma_translate_ip()
291 dev = rdma_find_ndev_for_src_ip_rcu(dev_addr->net, addr); in rdma_translate_ip()
293 rdma_copy_src_l2_addr(dev_addr, dev); in rdma_translate_ip()
318 static int ib_nl_fetch_ha(struct rdma_dev_addr *dev_addr, in ib_nl_fetch_ha() argument
324 return ib_nl_ip_send_msg(dev_addr, daddr, seq, family); in ib_nl_fetch_ha()
328 struct rdma_dev_addr *dev_addr, in dst_fetch_ha() argument
342 neigh_ha_snapshot(dev_addr->dst_dev_addr, n, dst->dev); in dst_fetch_ha()
364 static int fetch_ha(const struct dst_entry *dst, struct rdma_dev_addr *dev_addr, in fetch_ha() argument
379 if (has_gateway(dst, family) && dev_addr->network == RDMA_NETWORK_IB) in fetch_ha()
380 return ib_nl_fetch_ha(dev_addr, daddr, seq, family); in fetch_ha()
382 return dst_fetch_ha(dst, dev_addr, daddr); in fetch_ha()
475 static int copy_src_l2_addr(struct rdma_dev_addr *dev_addr, in copy_src_l2_addr() argument
483 ret = rdma_translate_ip(dst_in, dev_addr); in copy_src_l2_addr()
485 rdma_copy_src_l2_addr(dev_addr, dst->dev); in copy_src_l2_addr()
494 dev_addr->network = dst_in->sa_family == AF_INET ? in copy_src_l2_addr()
498 dev_addr->network = RDMA_NETWORK_IB; in copy_src_l2_addr()
503 static int rdma_set_src_addr_rcu(struct rdma_dev_addr *dev_addr, in rdma_set_src_addr_rcu() argument
524 return copy_src_l2_addr(dev_addr, dst_in, dst, ndev); in rdma_set_src_addr_rcu()
730 struct rdma_dev_addr dev_addr = {}; in roce_resolve_route_from_path() local
747 dev_addr.net = &init_net; in roce_resolve_route_from_path()
748 dev_addr.sgid_attr = attr; in roce_resolve_route_from_path()
751 &dev_addr, false, true, 0); in roce_resolve_route_from_path()
755 if ((dev_addr.network == RDMA_NETWORK_IPV4 || in roce_resolve_route_from_path()
756 dev_addr.network == RDMA_NETWORK_IPV6) && in roce_resolve_route_from_path()
819 struct rdma_dev_addr dev_addr; in rdma_addr_find_l2_eth_by_grh() local
830 memset(&dev_addr, 0, sizeof(dev_addr)); in rdma_addr_find_l2_eth_by_grh()
831 dev_addr.net = &init_net; in rdma_addr_find_l2_eth_by_grh()
832 dev_addr.sgid_attr = sgid_attr; in rdma_addr_find_l2_eth_by_grh()
836 (struct sockaddr *)&dgid_addr, &dev_addr, 1000, in rdma_addr_find_l2_eth_by_grh()
847 memcpy(dmac, dev_addr.dst_dev_addr, ETH_ALEN); in rdma_addr_find_l2_eth_by_grh()
848 *hoplimit = dev_addr.hoplimit; in rdma_addr_find_l2_eth_by_grh()