void* thr1(void* arg){
  while(1)
    switch(__VERIFIER_nondet_int()){
    case 0: rdma_addr_unregister_client(__VERIFIER_nondet_int()); break;
    case 1: queue_req(); break;
    case 2: process_req(); break;
    case 3: rdma_resolve_ip(); break;
    case 4: rdma_addr_cancel(); break; 
  }

  return 0;
}
Exemple #2
0
int hvnd_get_neigh_mac_addr(struct sockaddr *local, struct sockaddr *remote, char *mac_addr)
{
	struct rdma_dev_addr dev_addr;
	struct resolve_cb_context ctx;
	int ret;

	memset(&dev_addr, 0, sizeof(dev_addr));
	ctx.addr = &dev_addr;
	init_completion(&ctx.comp);

	ret = rdma_resolve_ip(&self, local, remote, &dev_addr, 1000, resolve_cb, &ctx);

	if (ret) {
		hvnd_error("rdma_resolve_ip failed ret=%d\n", ret);
		return ret;
	}

	wait_for_completion(&ctx.comp);
	memcpy(mac_addr, dev_addr.dst_dev_addr, ETH_ALEN);
	return ret;
}