CWBool CWSetRate(int radio_id, int wlan_id, int radiotype,int ratemask) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv wifi%d fixrate %d",radio_id,0); // return _system(cmdbuf);//so first,wait the interface below be transplated. _system(cmdbuf); if(radiotype & IEEE80211_PARAM_MODE_11g ) { sprintf(cmdbuf,"iwpriv wifi%d set_rate_mask_g 0x%x",radio_id,ratemask); } else if(radiotype & IEEE80211_PARAM_MODE_11b) { sprintf(cmdbuf,"iwpriv wifi%d set_rate_mask_b 0x%x",radio_id,ratemask); } else if (radiotype & IEEE80211_PARAM_MODE_11a) { sprintf(cmdbuf,"iwpriv wifi%d set_rate_mask_a 0x%x",radio_id,ratemask); } _system(cmdbuf); memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv wifi%d set_rate_cap 0x80",radio_id/*,ratemask*/); _system(cmdbuf); return CW_TRUE; }
DiskImage *CDIGenerator::mount_disk_img(std::vector<DiskOp*> ops) { static char crash_disk[DISK_CAP], ret; memcpy(crash_disk, disk.data, DISK_CAP); for (DiskOp *op: ops) { // printf("Write to %d (offset %d) %08x\n", op->offset / 512, op->nbytes / 512, // *(int*)op->data); memcpy(crash_disk + op->offset, op->data, op->nbytes); } _system("mkdir -p /mnt/recover; umount /mnt/recover"); FILE *fp = fopen("/tmp/disk.img", "w"); size_t nwrite = fwrite(crash_disk, DISK_CAP, 1, fp); fclose(fp); assert(nwrite == 1); _system("mount /tmp/disk.img /mnt/recover"); if (ret != 0) { fprintf(stderr, "Fatal error: Cannot mount crash disk image."); assert(0); } DiskImage *cdi = new DiskImage(("/mnt/recover/" + subject).c_str()); return cdi; }
CWBool CWSetMCSMaskAndCap(int radio_id, int mask, int capability) { char cmdbuf[128]; memset(cmdbuf, 0, 128); sprintf(cmdbuf,"iwpriv wifi%d set_mcs_mask 0x%x", radio_id, mask); _system(cmdbuf); memset(cmdbuf, 0, 128); sprintf(cmdbuf,"iwpriv wifi%d set_mcs_cap 0x%x", radio_id, capability); _system(cmdbuf); return CW_TRUE; }
CWBool CWSetBeaconInterval(int radio_id, int wlan_id,unsigned short beaconInterval) { char cmdbuf[100]; memset(cmdbuf,0,100); sprintf(cmdbuf,"iwpriv wifi%d bcninterval %hd",radio_id, beaconInterval); return _system(cmdbuf); }
CWBool CWSetRtsThreshold(int radio_id, int wlan_id,unsigned short rtsThreshold) { char cmdbuf[100]; memset(cmdbuf,0,100); sprintf(cmdbuf,"iwconfig wifi%d rts %d",radio_id, rtsThreshold); return _system(cmdbuf); }
CWBool CWDestroyWlanInterface(char *wlanname) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"wlanconfig %s destroy",wlanname); return _system(cmdbuf); }
CWBool CWSetWidFloodInterval(char *wlanname,unsigned char gFloodWidsInterval) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s wids_intval %d",wlanname,gFloodWidsInterval); return _system(cmdbuf); }
CWBool CWSetHideSsid(char *wlanname,unsigned char hide_ssid) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s hidessid %d",wlanname,hide_ssid); return _system(cmdbuf); }
CWBool CWSetForBiasAuto(int radio_id,char enable) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv wifi%d ForBiasAuto %d",radio_id,enable); return _system(cmdbuf); }
CWBool CWSetExtoffset(char *wlanname,char extoffset) { char cmdbuf[100]; memset(cmdbuf,0,100); sprintf(cmdbuf,"iwpriv %s extoffset %d",wlanname, extoffset); return _system(cmdbuf); }
CWBool CWSetPuregEnable(char *wlanname,int enable) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s pureg %d",wlanname,enable); return _system(cmdbuf); }
CWBool CWSetEssid(char *wlanname,char *essid) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwconfig %s essid \"%s\"",wlanname,essid); return _system(cmdbuf); }
CWBool CWSetPrivacyEnable(char *wlanname,char enable) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s privacy %d",wlanname,enable); return _system(cmdbuf); }
CWBool CWSetOpenNone(char *wlanname) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwconfig %s key off",wlanname); return _system(cmdbuf); }
CWBool CWSetAuthmode(char *wlanname,int automode) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s authmode %d",wlanname,automode); return _system(cmdbuf); }
CWBool CWSetShortgi(char *wlanname,unsigned short guardinterval) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s shortgi %hd",wlanname,guardinterval); return _system(cmdbuf); }
CWBool CWSetQuickRoamingEnable(char *wlanname,int enable) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"autelan quick_roaming %s set_flag %d",wlanname,enable); return _system(cmdbuf); }
CWBool CWSetDtim(char *wlanname,unsigned char dtim) { char cmdbuf[100]; memset(cmdbuf,0,100); sprintf(cmdbuf,"iwpriv %s dtim %d",wlanname, dtim); return _system(cmdbuf); }
CWBool CWSetPreamble(char *wlanname,unsigned char preamble) { char cmdbuf[100]; memset(cmdbuf,0,100); sprintf(cmdbuf,"iwpriv %s preamble %d",wlanname, preamble); return _system(cmdbuf); }
CWBool CWSetRadioType(int radio_id, int wlan_id, int radiotype) { /* radiotype as follows from AC (and atheros) +-+-+-+-+-+-+-+-+ gn an n g a b +-+-+-+-+-+-+-+-+ but,marvell like this +-+-+-+-+-+-+-+-+ a n g b +-+-+-+-+-+-+-+-+ 5=802.11g/n (unused) 7=802.11b/g/n(default) so,we need to transfer. */ int new_radiotype = 0; if(radiotype & IEEE80211_PARAM_MODE_11b) new_radiotype |= 0x01; // if(radiotype & 0x02) new_radiotype |= 0x0f;//delete by wangxl 20121221 if(radiotype & IEEE80211_PARAM_MODE_11a) new_radiotype |= 0x08; //add by wangxl 20121221 if(radiotype & IEEE80211_PARAM_MODE_11g) new_radiotype |= 0x02; if(radiotype & IEEE80211_PARAM_MODE_11n) new_radiotype |= 0x04; if(radiotype & IEEE80211_PARAM_MODE_11an) new_radiotype |= 0x0c; // if(radiotype & 0x20) new_radiotype |= 0x05;//delete by wangxl 20121221 // if(radiotype & 0x02) new_radiotype |= 0x0f;//add by wangxl 20121221 if(radiotype & IEEE80211_PARAM_MODE_11gn) new_radiotype |= 0x06; char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv wifi%d opmode %d",radio_id,new_radiotype); return _system(cmdbuf); }
CWBool CWSetRxChainMask(char *wlanname,unsigned char state) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s rxchainmask %d",wlanname,state); return _system(cmdbuf); }
CWBool CWSetChannel(int radio_id, int wlan_id, int channel) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwconfig wifi%d channel %d",radio_id,channel); return _system(cmdbuf); }
CWBool CWSetPuren(char *wlanname,int state) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s puren %d",wlanname,state); return _system(cmdbuf); }
CWBool CWDelWapiset(char *wlanname) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"wapiset wlan %s del",wlanname); return _system(cmdbuf); }
CWBool CWSetWidFloodProbeCnt(char *wlanname,unsigned char gFloodProbeCnt) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s prb_atk_cnt %d",wlanname,gFloodProbeCnt); return _system(cmdbuf); }
CWBool CWSetTrafficLimitEnable(char *wlanname,unsigned char enable) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf, "autelan traffic_limit %s set_vap_flag %d",wlanname,enable); return _system(cmdbuf); }
CWBool CWSetWidWeakIVDetectEnable(char *wlanname,int enable) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwpriv %s wk_iv_detect %d",wlanname,enable); return _system(cmdbuf); }
CWBool CWSetTrafficLimitThreshold(char *wlanname,unsigned char threshold) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf, "autelan traffic_limit %s set_vap %d",wlanname,threshold); return _system(cmdbuf); }
CWBool CWSetFragmentThreshold(char *wlanname,unsigned short threshold) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf,"iwconfig %s frag %d",wlanname,threshold); return _system(cmdbuf); }
CWBool CWSet1p_egress_map(char * wlanname,unsigned char QosOrder,unsigned char dot1p_map_wmm) { char cmdbuf[128]; memset(cmdbuf,0,128); sprintf(cmdbuf, "autelan wmm 1p_egress_map %.*s %.*d %.*d",sizeof(wlanname),wlanname,sizeof(QosOrder),QosOrder,sizeof(dot1p_map_wmm),dot1p_map_wmm); return _system(cmdbuf); }