Esempio n. 1
0
int test_pad_check(void)
{
    unsigned char buffer[256];
    size_t t, p;

    for (t = 1; t < 32; ++t)
    {
        gen_msg(buffer, t, 32);
        ASSERT_EQ(pad_check(buffer, 32), t);
    }

    for (t = 1; t < 32; ++t)
        for (p = t; p < 32; ++p)
        {
            gen_msg(buffer, t, 32);
            buffer[p] ^= 0x01;

            ASSERT(!pad_check(buffer, 32));
        }

    gen_msg(buffer, 40, 80);

    ASSERT(!pad_check(buffer, 0));
    ASSERT(!pad_check(buffer, 32));
    ASSERT(!pad_check(buffer, 33));
    ASSERT(!pad_check(buffer, 256));
    ASSERT(!pad_check(buffer, 257));

    memset(buffer, 0xB1, 177);
    ASSERT_EQ(pad_check(buffer, 177), 177);

    return 1;
}
Esempio n. 2
0
/* req_pkt() - DEBUG ONLY!!!!!!!!!
 */
void ocin_router_inj::req_pkt() { 
	
    ocin_msg *msg = gen_msg(1);
    msg->src_addr = parent_router->node_info->coord;
    // initialize the destination address
    msg->dest_addr.clear();
    for (int i=0; i<parent_router->node_info->coord.size(); i++) { 
    	msg->dest_addr.push_back(1);
    }
    msg->rt_dimension = 0;
    msg->rt_dir = 0;
    msg->p_out = 0;

    vector<ocin_flit *> ::iterator fitr;
    for (fitr=msg->flits.begin(); fitr != msg->flits.end(); fitr++) {
      (*fitr)->vc_idx=0;
      (*fitr)->idx=0;
      (*fitr)->p_out=0;
      (*fitr)->p_in=0;
      (*fitr)->inj_time=10;
     
      data.push_back(*fitr);
    }

#ifdef DEBUG
    {
      stringstream tmp;
      tmp  << "Generated new msg: " ;
      ocin_name_debug(name,tmp.str());
    }

    {
      stringstream tmp;
      tmp  << msg2str(msg, true /*print flits*/);
      ocin_name_debug(name,tmp.str());
    }

#endif
}
Esempio n. 3
0
int main(int argc, char *argv[])
{
	int opt;

	while ((opt = getopt(argc, argv, PARAMS)) != -1) {
		switch (opt) {
			case 'h':
				fprintf(stdout, HELP, argv[0]);
				exit(EXIT_SUCCESS);
			default:
				fprintf(stderr, USAGE, argv[0]);
				exit(EXIT_FAILURE);
		}
	}

	if (optind >= argc - 3) {
		fprintf(stderr, USAGE, argv[0]);
		exit(EXIT_FAILURE);
	}

	pthread_create(&monthread, NULL, mon_run, NULL);

	ifacename = argv[optind];
	monifname = argv[optind+1];
	ssid = argv[optind+2];
	int chan = atoi(argv[optind+3]);

	struct ifreq s;
	int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
	strcpy(s.ifr_name, ifacename);
	if (ioctl(fd, SIOCGIFHWADDR, &s)) {
		die("Unable to retrieve hardware address");
	}
	close(fd);
	memcpy(stamac, s.ifr_addr.sa_data, 6);

	int iface = if_nametoindex(ifacename);

	struct nl_cb *cb = nl_cb_alloc(NL_CB_DEFAULT);
	if(!cb)
		die("Can't allocate cb");
	struct nl_handle *handle;
	handle = nl_handle_alloc_cb(cb);
	if(!handle)
		die("Can't allocate handle");
	if(genl_connect(handle))
		die("Can't connect to generic netlink");

	if ((handle_id = genl_ctrl_resolve(handle, "nl80211")) < 0)
		die("Can't resolve generic netlink");
	
	usleep(100000);

	int ret;
	struct nl_msg* msg;
	do {
		msg = gen_msg(iface, ssid, chan);
		ret = send_and_recv(handle, msg, cb);
	}while(ret == DEVICE_BUSY);
	
	if (ret)
		printf("Sending failed %s\n", strerror(-ret));
	
	int ctr = 0;
	while(state != 2) {
		usleep(100);
		ctr++;
		if(ctr == 40000) {
			die("No probe response within timeout");
		}
	}

}