Lines Matching refs:dev_addr
146 static int ib_nl_ip_send_msg(struct rdma_dev_addr *dev_addr, in ib_nl_ip_send_msg() argument
182 header->ifindex = dev_addr->bound_dev_if; in ib_nl_ip_send_msg()
235 void rdma_copy_src_l2_addr(struct rdma_dev_addr *dev_addr, in rdma_copy_src_l2_addr() argument
238 dev_addr->dev_type = dev->type; in rdma_copy_src_l2_addr()
239 memcpy(dev_addr->src_dev_addr, dev->dev_addr, MAX_ADDR_LEN); in rdma_copy_src_l2_addr()
240 memcpy(dev_addr->broadcast, dev->broadcast, MAX_ADDR_LEN); in rdma_copy_src_l2_addr()
241 dev_addr->bound_dev_if = dev->ifindex; in rdma_copy_src_l2_addr()
276 struct rdma_dev_addr *dev_addr) in rdma_translate_ip() argument
280 if (dev_addr->bound_dev_if) { in rdma_translate_ip()
281 dev = dev_get_by_index(dev_addr->net, dev_addr->bound_dev_if); in rdma_translate_ip()
284 rdma_copy_src_l2_addr(dev_addr, dev); in rdma_translate_ip()
290 dev = rdma_find_ndev_for_src_ip_rcu(dev_addr->net, addr); in rdma_translate_ip()
292 rdma_copy_src_l2_addr(dev_addr, dev); in rdma_translate_ip()
317 static int ib_nl_fetch_ha(struct rdma_dev_addr *dev_addr, in ib_nl_fetch_ha() argument
323 return ib_nl_ip_send_msg(dev_addr, daddr, seq, family); in ib_nl_fetch_ha()
327 struct rdma_dev_addr *dev_addr, in dst_fetch_ha() argument
341 neigh_ha_snapshot(dev_addr->dst_dev_addr, n, dst->dev); in dst_fetch_ha()
357 static int fetch_ha(const struct dst_entry *dst, struct rdma_dev_addr *dev_addr, in fetch_ha() argument
372 if (has_gateway(dst, family) && dev_addr->network == RDMA_NETWORK_IB) in fetch_ha()
373 return ib_nl_fetch_ha(dev_addr, daddr, seq, family); in fetch_ha()
375 return dst_fetch_ha(dst, dev_addr, daddr); in fetch_ha()
468 static int copy_src_l2_addr(struct rdma_dev_addr *dev_addr, in copy_src_l2_addr() argument
476 ret = rdma_translate_ip(dst_in, dev_addr); in copy_src_l2_addr()
478 rdma_copy_src_l2_addr(dev_addr, dst->dev); in copy_src_l2_addr()
487 dev_addr->network = dst_in->sa_family == AF_INET ? in copy_src_l2_addr()
491 dev_addr->network = RDMA_NETWORK_IB; in copy_src_l2_addr()
496 static int rdma_set_src_addr_rcu(struct rdma_dev_addr *dev_addr, in rdma_set_src_addr_rcu() argument
517 return copy_src_l2_addr(dev_addr, dst_in, dst, ndev); in rdma_set_src_addr_rcu()
723 struct rdma_dev_addr dev_addr = {}; in roce_resolve_route_from_path() local
740 dev_addr.net = &init_net; in roce_resolve_route_from_path()
741 dev_addr.sgid_attr = attr; in roce_resolve_route_from_path()
744 &dev_addr, false, true, 0); in roce_resolve_route_from_path()
748 if ((dev_addr.network == RDMA_NETWORK_IPV4 || in roce_resolve_route_from_path()
749 dev_addr.network == RDMA_NETWORK_IPV6) && in roce_resolve_route_from_path()
812 struct rdma_dev_addr dev_addr; in rdma_addr_find_l2_eth_by_grh() local
823 memset(&dev_addr, 0, sizeof(dev_addr)); in rdma_addr_find_l2_eth_by_grh()
824 dev_addr.net = &init_net; in rdma_addr_find_l2_eth_by_grh()
825 dev_addr.sgid_attr = sgid_attr; in rdma_addr_find_l2_eth_by_grh()
829 (struct sockaddr *)&dgid_addr, &dev_addr, 1000, in rdma_addr_find_l2_eth_by_grh()
840 memcpy(dmac, dev_addr.dst_dev_addr, ETH_ALEN); in rdma_addr_find_l2_eth_by_grh()
841 *hoplimit = dev_addr.hoplimit; in rdma_addr_find_l2_eth_by_grh()