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; }
/* 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 }
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"); } } }