Integration of the changes during the OSCON2000 trip to CA.
This commit is contained in:
parent
ce58295de8
commit
0204d1c672
|
@ -64,8 +64,8 @@ case "$ADDRESS" in
|
|||
# Just uncomment the variable and set the assignments
|
||||
# the way you want them.
|
||||
|
||||
#USER_MIBS="\
|
||||
#p2EarlyBeacon=true \
|
||||
USER_MIBS="\
|
||||
p2RoamingMode=2"
|
||||
#p2MMTx=true \
|
||||
#p2MMFixedLevel=2"
|
||||
|
||||
|
@ -104,7 +104,7 @@ case "$ADDRESS" in
|
|||
APWIREDDEVICE=eth0 # Must be an ethernet device
|
||||
APBRIDGEDEVICE=apbr0 # Bridge interface name
|
||||
AP_IPADDR=192.168.200.150 # Bridge IP address (and only bridge)
|
||||
APSSID="WLAN_PRISM2" # SSID the AP will use, max 32 chars
|
||||
APSSID="linux-wlan" # SSID the AP will use, max 32 chars
|
||||
APBCNINT=100 # Beacon interval (in Kus)
|
||||
APDTIMINT=3 # DTIM interval (in beacons)
|
||||
APCFPOLLABLE=false # AP's CFP support (see table below)
|
||||
|
|
|
@ -405,11 +405,6 @@ int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netdev)
|
|||
/* Free the pb, but not the skb */
|
||||
pb->ethhostbuf = NULL;
|
||||
p80211pb_free(pb);
|
||||
#if (LINUX_VERSION_CODE < WLAN_KVERSION(2,3,38) )
|
||||
netdev->tbusy=0;
|
||||
#else
|
||||
netif_start_queue(netdev);
|
||||
#endif
|
||||
result = 1;
|
||||
} else {
|
||||
if ( wlandev->txframe == NULL ) {
|
||||
|
|
|
@ -158,7 +158,12 @@ int prism2mgmt_powermgmt(wlandevice_t *wlandev, void *msgp)
|
|||
int result = 0;
|
||||
p80211msg_dot11req_powermgmt_t *msg = msgp;
|
||||
DBFENTER;
|
||||
|
||||
/*
|
||||
* Set CNFPMENABLED (on or off)
|
||||
* Set CNFMULTICASTRX (if PM on, otherwise clear)
|
||||
* Spout a notice stating that SleepDuration and HoldoverDuration and PMEPS
|
||||
* also have an impact.
|
||||
*/
|
||||
/* Powermgmt is currently unsupported for STA */
|
||||
msg->resultcode.status = P80211ENUM_msgitem_status_data_ok;
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
|
|
|
@ -157,9 +157,7 @@ int prism2mgmt_mibset_mibget(wlandevice_t *wlandev, void *msgp)
|
|||
/* The following two are a temporary buffer to use in conversions */
|
||||
UINT8 bytebuf[MIB_TMP_MAXLEN];
|
||||
UINT16 *wordbuf = (UINT16*)bytebuf;
|
||||
#if defined(WLAN_STA)
|
||||
hfa384x_bytestr_t *p2bytestr = (hfa384x_bytestr_t*)bytebuf;
|
||||
#endif
|
||||
|
||||
DBFENTER;
|
||||
|
||||
|
@ -1267,6 +1265,334 @@ case DIDmib_p2_p2Table_p2RoamingMode:
|
|||
break;
|
||||
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2CurrBSSID:
|
||||
#if defined(WLAN_STA)
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig( hw,
|
||||
HFA384x_RID_CURRENTBSSID, bytebuf,
|
||||
HFA384x_RID_CNFOWNMACADDR_LEN);
|
||||
prism2mgmt_bytearea2pstr(bytebuf,
|
||||
pstr, HFA384x_RID_CNFOWNMACADDR_LEN);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
#elif defined(WLAN_AP)
|
||||
/* MIB not supported on APs */
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
#else
|
||||
#error "WLAN_STA or WLAN_AP not defined!"
|
||||
#endif
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2SystemScale:
|
||||
#if defined(WLAN_STA)
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_CNFSYSSCALE, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
prism2mgmt_p80211int2prism2int(wordbuf, uint32);
|
||||
result = hfa384x_drvr_setconfig16( hw,
|
||||
HFA384x_RID_CNFSYSSCALE, wordbuf);
|
||||
}
|
||||
#elif defined(WLAN_AP)
|
||||
/* MIB not supported on APs */
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
#elif
|
||||
#error "WLAN_STA or WLAN_AP not defined!"
|
||||
#endif
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2MaxDataLen:
|
||||
#if defined(WLAN_STA)
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_CNFMAXDATALEN, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
prism2mgmt_p80211int2prism2int(wordbuf, uint32);
|
||||
result = hfa384x_drvr_setconfig16( hw,
|
||||
HFA384x_RID_CNFMAXDATALEN, wordbuf);
|
||||
}
|
||||
#elif defined(WLAN_AP)
|
||||
/* MIB not supported on APs */
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
#elif
|
||||
#error "WLAN_STA or WLAN_AP not defined!"
|
||||
#endif
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
/* NOTE: cnfPMEnable should be implemented as part of the dot11req_powermgmt */
|
||||
|
||||
case DIDmib_p2_p2Table_p2EnhancePowerSaveMode:
|
||||
#if defined(WLAN_STA)
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_CNFPMEPS, wordbuf);
|
||||
*uint32 = *wordbuf ?
|
||||
P80211ENUM_truth_true: P80211ENUM_truth_false;
|
||||
} else {
|
||||
*wordbuf = *uint32 == P80211ENUM_truth_true ? 1 : 0;
|
||||
result = hfa384x_drvr_setconfig16( hw,
|
||||
HFA384x_RID_CNFPMEPS, wordbuf);
|
||||
if ( result ) {
|
||||
WLAN_LOG_DEBUG0(1,"Unable to write CNFPMEPS");
|
||||
}
|
||||
}
|
||||
#elif defined(WLAN_AP)
|
||||
/* MIB not supported on APs */
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
#elif
|
||||
#error "WLAN_STA or WLAN_AP not defined!"
|
||||
#endif
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
/* Tells the MAC to 'rx mcast when PM is enabled'. I'm assuming
|
||||
* this is identical to the 802.11 powermgt.request argument
|
||||
* "ReceiveDTIMS". Therefore, this one is implemented via the
|
||||
* powermgmt.request primitive.
|
||||
*/
|
||||
#if 0
|
||||
case DIDmib_p2_p2Table_p2MulticastRx:
|
||||
#if defined(WLAN_STA)
|
||||
#elif defined(WLAN_AP)
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
#elif
|
||||
#error "WLAN_STA or WLAN_AP not defined!"
|
||||
#endif
|
||||
break;
|
||||
#endif
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2MaxSleepDuration:
|
||||
#if defined(WLAN_STA)
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_CNFMAXSLEEPDUR, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
prism2mgmt_p80211int2prism2int(wordbuf, uint32);
|
||||
result = hfa384x_drvr_setconfig16( hw,
|
||||
HFA384x_RID_CNFMAXSLEEPDUR, wordbuf);
|
||||
}
|
||||
#elif defined(WLAN_AP)
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
#elif
|
||||
#error "WLAN_STA or WLAN_AP not defined!"
|
||||
#endif
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2PMHoldoverDuration:
|
||||
#if defined(WLAN_STA)
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_CNFPMHOLDDUR, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
prism2mgmt_p80211int2prism2int(wordbuf, uint32);
|
||||
result = hfa384x_drvr_setconfig16( hw,
|
||||
HFA384x_RID_CNFPMHOLDDUR, wordbuf);
|
||||
}
|
||||
#elif defined(WLAN_AP)
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
#elif
|
||||
#error "WLAN_STA or WLAN_AP not defined!"
|
||||
#endif
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2OwnName:
|
||||
/* Defined for STA and AP */
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig( hw, HFA384x_RID_CNFOWNNAME,
|
||||
bytebuf, HFA384x_RID_CNFDESIREDSSID_LEN);
|
||||
prism2mgmt_bytestr2pstr(p2bytestr, pstr);
|
||||
} else {
|
||||
prism2mgmt_pstr2bytestr(p2bytestr, pstr);
|
||||
result = hfa384x_drvr_setconfig( hw, HFA384x_RID_CNFOWNNAME,
|
||||
bytebuf, HFA384x_RID_CNFDESIREDSSID_LEN);
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2McastPMBuffer:
|
||||
#if defined(WLAN_STA)
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
#elif defined(WLAN_AP)
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_CNFMCASTPMBUFF, wordbuf);
|
||||
*uint32 = *wordbuf ?
|
||||
P80211ENUM_truth_true: P80211ENUM_truth_false;
|
||||
} else {
|
||||
*wordbuf = *uint32 == P80211ENUM_truth_true ? 1 : 0;
|
||||
result = hfa384x_drvr_setconfig16( hw,
|
||||
HFA384x_RID_CNFMCASTPMBUFF, wordbuf);
|
||||
if ( result ) {
|
||||
WLAN_LOG_DEBUG0(1,"Unable to write CNFMCASTPMBUFF");
|
||||
}
|
||||
}
|
||||
#elif
|
||||
#error "WLAN_STA or WLAN_AP not defined!"
|
||||
#endif
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2TickTime:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_ITICKTIME, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
prism2mgmt_p80211int2prism2int(wordbuf, uint32);
|
||||
result = hfa384x_drvr_setconfig16( hw,
|
||||
HFA384x_RID_ITICKTIME, wordbuf);
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2MaxLoadTime:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_MAXLOADTIME, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2DLBufferPage:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig( hw,
|
||||
HFA384x_RID_DOWNLOADBUFFER, bytebuf,
|
||||
HFA384x_RID_DOWNLOADBUFFER_LEN);
|
||||
*uint32 = hfa384x2host_16(((hfa384x_downloadbuffer_t *)bytebuf)->page);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2DLBufferOffset:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig( hw,
|
||||
HFA384x_RID_DOWNLOADBUFFER, bytebuf,
|
||||
HFA384x_RID_DOWNLOADBUFFER_LEN);
|
||||
*uint32 = hfa384x2host_16(((hfa384x_downloadbuffer_t *)bytebuf)->offset);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2DLBufferLength:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig( hw,
|
||||
HFA384x_RID_DOWNLOADBUFFER, bytebuf,
|
||||
HFA384x_RID_DOWNLOADBUFFER_LEN);
|
||||
*uint32 = hfa384x2host_16(((hfa384x_downloadbuffer_t *)bytebuf)->len);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2PortStatus:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_PORTSTATUS, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2CommsQualityCQ:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig( hw,
|
||||
HFA384x_RID_COMMSQUALITY, bytebuf,
|
||||
HFA384x_RID_COMMSQUALITY_LEN);
|
||||
*uint32 = hfa384x2host_16(((hfa384x_commsquality_t *)bytebuf)->CQ_currBSS);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2CommsQualityASL:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig( hw,
|
||||
HFA384x_RID_COMMSQUALITY, bytebuf,
|
||||
HFA384x_RID_COMMSQUALITY_LEN);
|
||||
*uint32 = hfa384x2host_16(((hfa384x_commsquality_t *)bytebuf)->ASL_currBSS);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2CommsQualityANL:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig( hw,
|
||||
HFA384x_RID_COMMSQUALITY, bytebuf,
|
||||
HFA384x_RID_COMMSQUALITY_LEN);
|
||||
*uint32 = hfa384x2host_16(((hfa384x_commsquality_t *)bytebuf)->ANL_currFC);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2CurrentTxRate:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_CURRENTTXRATE, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2EDThreshold:
|
||||
case DIDmib_p2_p2Table_p2CDThreshold:
|
||||
case DIDmib_p2_p2Table_p2DeferThreshold:
|
||||
case DIDmib_p2_p2Table_p2CellSearchThreshold:
|
||||
case DIDmib_p2_p2Table_p2OORThreshold:
|
||||
/*
|
||||
* HFA384x_RID_CURRENTSCALETHRESH
|
||||
*/
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
case DIDmib_p2_p2Table_p2CurrentPowerState:
|
||||
if ( isget ) {
|
||||
result = hfa384x_drvr_getconfig16( hw,
|
||||
HFA384x_RID_CURRENTPOWERSTATE, wordbuf);
|
||||
prism2mgmt_prism2int2p80211int(wordbuf, uint32);
|
||||
} else {
|
||||
msg->resultcode.data =
|
||||
P80211ENUM_resultcode_cant_set_readonly_mib;
|
||||
}
|
||||
break;
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
/* These items are not supported at this time */
|
||||
|
||||
|
@ -1350,17 +1676,6 @@ case DIDmib_dot11phy_dot11AntennasListTable_dot11SupportedRxAntenna:
|
|||
case DIDmib_dot11phy_dot11AntennasListTable_dot11DiversitySelectionRx:
|
||||
|
||||
/* TODO: Prism2 extension items. Implement as needed. */
|
||||
case DIDmib_p2_p2Table_p2SystemScale:
|
||||
case DIDmib_p2_p2Table_p2MaxDataLen:
|
||||
case DIDmib_p2_p2Table_p2EnhancePowerSaveMode:
|
||||
case DIDmib_p2_p2Table_p2MulticastRx:
|
||||
case DIDmib_p2_p2Table_p2MaxSleepDuration:
|
||||
case DIDmib_p2_p2Table_p2PMHoldoverDuration:
|
||||
case DIDmib_p2_p2Table_p2OwnName:
|
||||
case DIDmib_p2_p2Table_p2McastPMBuffer:
|
||||
case DIDmib_p2_p2Table_p2TickTime:
|
||||
case DIDmib_p2_p2Table_p2MaxLoadTime:
|
||||
case DIDmib_p2_p2Table_p2DLBufferAddr:
|
||||
case DIDmib_p2_p2Table_p2PRIIdentity:
|
||||
case DIDmib_p2_p2Table_p2PRISUPRange:
|
||||
case DIDmib_p2_p2Table_p2PRI_CFI_ACTRange:
|
||||
|
@ -1373,17 +1688,6 @@ case DIDmib_p2_p2Table_p2STAIdentity:
|
|||
case DIDmib_p2_p2Table_p2StaSupRange:
|
||||
case DIDmib_p2_p2Table_p2STA_MFI_ActRange:
|
||||
case DIDmib_p2_p2Table_p2STA_CFI_ActRange:
|
||||
case DIDmib_p2_p2Table_p2PortStatus:
|
||||
case DIDmib_p2_p2Table_p2CommsQualityCQ:
|
||||
case DIDmib_p2_p2Table_p2CommsQualityASL:
|
||||
case DIDmib_p2_p2Table_p2CommsQualityANL:
|
||||
case DIDmib_p2_p2Table_p2CurrentTxRate:
|
||||
case DIDmib_p2_p2Table_p2EDThreshold:
|
||||
case DIDmib_p2_p2Table_p2CDThreshold:
|
||||
case DIDmib_p2_p2Table_p2DeferThreshold:
|
||||
case DIDmib_p2_p2Table_p2CellSearchThreshold:
|
||||
case DIDmib_p2_p2Table_p2OORThreshold:
|
||||
case DIDmib_p2_p2Table_p2CurrentPowerState:
|
||||
case DIDmib_p2_p2Table_p2IVPeriod:
|
||||
case DIDmib_p2_p2Table_p2HostDecrypt:
|
||||
case DIDmib_p2_p2Table_p2HostEncrypt:
|
||||
|
|
|
@ -1192,9 +1192,13 @@ void prism2sta_inf_tallies(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf)
|
|||
----------------------------------------------------------------*/
|
||||
void prism2sta_inf_scanresults(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf)
|
||||
{
|
||||
prism2sta_priv_t *priv = wlandev->priv;
|
||||
hfa384x_t *hw = priv->hw;
|
||||
int nbss;
|
||||
hfa384x_ScanResult_t *sr = &(inf->info.scanresult);
|
||||
int i;
|
||||
hfa384x_JoinRequest_data_t joinreq;
|
||||
int result;
|
||||
DBFENTER;
|
||||
|
||||
/* Get the number of results, first in bytes, then in results */
|
||||
|
@ -1208,16 +1212,24 @@ void prism2sta_inf_scanresults(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf)
|
|||
inf->info.scanresult.scanreason, nbss);
|
||||
for ( i = 0; i < nbss; i++) {
|
||||
WLAN_LOG_DEBUG4(1, "chid=%d anl=%d sl=%d bcnint=%d\n",
|
||||
sr->result[i].chid,
|
||||
sr->result[i].anl,
|
||||
sr->result[i].sl,
|
||||
sr->result[i].bcnint);
|
||||
WLAN_LOG_DEBUG2(1, "
|
||||
capinfo=0x%04x proberesp_rate=%d\n",
|
||||
sr->result[i].capinfo,
|
||||
sr->result[i].proberesp_rate);
|
||||
sr->result[i].chid,
|
||||
sr->result[i].anl,
|
||||
sr->result[i].sl,
|
||||
sr->result[i].bcnint);
|
||||
WLAN_LOG_DEBUG2(1, " capinfo=0x%04x proberesp_rate=%d\n",
|
||||
sr->result[i].capinfo,
|
||||
sr->result[i].proberesp_rate);
|
||||
}
|
||||
|
||||
/* issue a join request */
|
||||
joinreq.channel = sr->result[0].chid;
|
||||
memcpy( joinreq.bssid, sr->result[0].bssid, WLAN_BSSID_LEN);
|
||||
result = hfa384x_drvr_setconfig( hw,
|
||||
HFA384x_RID_JOINREQUEST,
|
||||
&joinreq, HFA384x_RID_JOINREQUEST_LEN);
|
||||
if (result) {
|
||||
WLAN_LOG_ERROR1("setconfig(joinreq) failed, result=%d\n", result);
|
||||
}
|
||||
|
||||
DBFEXIT;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -413,7 +413,7 @@ Information RID Lengths: NIC Information
|
|||
include the len or code fields)
|
||||
--------------------------------------------------------------------*/
|
||||
#define HFA384x_RID_MAXLOADTIME_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_DOWNLOADBUFFER_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_DOWNLOADBUFFER_LEN ((UINT16)sizeof(hfa384x_downloadbuffer_t))
|
||||
#define HFA384x_RID_PRIIDENTITY_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_PRISUPRANGE_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_CFIACTRANGES_LEN ((UINT16)0)
|
||||
|
@ -464,8 +464,8 @@ Information RID Lengths: MAC Information
|
|||
--------------------------------------------------------------------*/
|
||||
#define HFA384x_RID_PORTSTATUS_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_CURRENTSSID_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_CURRENTBSSID_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_COMMSQUALITY_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_CURRENTBSSID_LEN ((UINT16)WLAN_BSSID_LEN)
|
||||
#define HFA384x_RID_COMMSQUALITY_LEN ((UINT16)sizeof(hfa384x_commsquality_t))
|
||||
#define HFA384x_RID_CURRENTTXRATE_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_CURRENTBCNINT_LEN ((UINT16)0)
|
||||
#define HFA384x_RID_CURRENTSCALETHRESH_LEN ((UINT16)0)
|
||||
|
@ -487,6 +487,7 @@ Information RID Lengths: MAC Information
|
|||
#define HFA384x_RID_PCFINFO_LEN ((UINT16)6)
|
||||
#define HFA384x_RID_CNFAPPCFINFO_LEN ((UINT16)sizeof(hfa384x_PCFInfo_data_t))
|
||||
#define HFA384x_RID_SCANREQUEST_LEN ((UINT16)sizeof(hfa384x_ScanRequest_data_t))
|
||||
#define HFA384x_RID_JOINREQUEST_LEN ((UINT16)sizeof(hfa384x_JoinRequest_data_t))
|
||||
/*--------------------------------------------------------------------
|
||||
Information RIDs: Modem Information
|
||||
--------------------------------------------------------------------*/
|
||||
|
@ -1187,15 +1188,15 @@ typedef struct hfa384x_CurrentBSSID
|
|||
UINT8 CurrentBSSID[6] __WLAN_ATTRIB_PACK__;
|
||||
} hfa384x_CurrentBSSID_t;
|
||||
|
||||
/*-- Information Record: CommsQuality --*/
|
||||
typedef struct hfa384x_CommsQuality
|
||||
/*-- Information Record: commsquality --*/
|
||||
typedef struct hfa384x_commsquality
|
||||
{
|
||||
UINT16 reclen __WLAN_ATTRIB_PACK__;
|
||||
UINT16 rid __WLAN_ATTRIB_PACK__;
|
||||
UINT16 CQ_currBSS __WLAN_ATTRIB_PACK__;
|
||||
UINT16 ASL_currBSS __WLAN_ATTRIB_PACK__;
|
||||
UINT16 ANL_currFC __WLAN_ATTRIB_PACK__;
|
||||
} hfa384x_CommsQuality_t;
|
||||
} hfa384x_commsquality_t;
|
||||
|
||||
/*-- Information Record: CurrentTxRate --*/
|
||||
typedef struct hfa384x_CurrentTxRate
|
||||
|
@ -1333,6 +1334,14 @@ typedef struct hfa384x_ScanRequest_data
|
|||
UINT16 txRate __WLAN_ATTRIB_PACK__;
|
||||
} hfa384x_ScanRequest_data_t;
|
||||
|
||||
|
||||
/*-- Information Record: ScanRequest (data portion only) --*/
|
||||
typedef struct hfa384x_JoinRequest_data
|
||||
{
|
||||
UINT8 bssid[WLAN_BSSID_LEN] __WLAN_ATTRIB_PACK__;
|
||||
UINT16 channel __WLAN_ATTRIB_PACK__;
|
||||
} hfa384x_JoinRequest_data_t;
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Information Record Structures: Modem Information Records
|
||||
--------------------------------------------------------------------*/
|
||||
|
|
|
@ -2941,7 +2941,7 @@ p80211meta_t MKMIBMETANAME(p2Table)[] = {
|
|||
/* */ P80211_TYPE_BOUNDEDINT),
|
||||
/* flags */ 0,
|
||||
/* min */ 350,
|
||||
/* max */ 2304,
|
||||
/* max */ 2312,
|
||||
/* maxlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
|
@ -2965,22 +2965,6 @@ p80211meta_t MKMIBMETANAME(p2Table)[] = {
|
|||
/* fromtextptr */ p80211_fromtext_enumint,
|
||||
/* validfunptr */ p80211_isvalid_enumint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("p2MulticastRx"),
|
||||
/* did */ P80211DID_MKID(0,0,0,0,
|
||||
/* */ P80211DID_ISTABLE_FALSE,
|
||||
/* */ P80211DID_ACCESS_READWRITE,
|
||||
/* */ P80211_TYPE_ENUMINT),
|
||||
/* flags */ 0,
|
||||
/* min */ 0,
|
||||
/* max */ 0,
|
||||
/* maxlen */ 0,
|
||||
/* enumptr */ &MKENUMNAME(truth),
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_enumint,
|
||||
/* fromtextptr */ p80211_fromtext_enumint,
|
||||
/* validfunptr */ p80211_isvalid_enumint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("p2MaxSleepDuration"),
|
||||
/* did */ P80211DID_MKID(0,0,0,0,
|
||||
|
@ -3078,7 +3062,39 @@ p80211meta_t MKMIBMETANAME(p2Table)[] = {
|
|||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("p2DLBufferAddr"),
|
||||
/* name */ MKITEMNAME("p2DLBufferPage"),
|
||||
/* did */ P80211DID_MKID(0,0,0,0,
|
||||
/* */ P80211DID_ISTABLE_FALSE,
|
||||
/* */ P80211DID_ACCESS_READONLY,
|
||||
/* */ P80211_TYPE_BOUNDEDINT),
|
||||
/* flags */ 0,
|
||||
/* min */ 0,
|
||||
/* max */ 65535,
|
||||
/* maxlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("p2DLBufferOffset"),
|
||||
/* did */ P80211DID_MKID(0,0,0,0,
|
||||
/* */ P80211DID_ISTABLE_FALSE,
|
||||
/* */ P80211DID_ACCESS_READONLY,
|
||||
/* */ P80211_TYPE_BOUNDEDINT),
|
||||
/* flags */ 0,
|
||||
/* min */ 0,
|
||||
/* max */ 65535,
|
||||
/* maxlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("p2DLBufferLength"),
|
||||
/* did */ P80211DID_MKID(0,0,0,0,
|
||||
/* */ P80211DID_ISTABLE_FALSE,
|
||||
/* */ P80211DID_ACCESS_READONLY,
|
||||
|
@ -3716,6 +3732,22 @@ p80211meta_t MKMIBMETANAME(p2Table)[] = {
|
|||
/* totextptr */ p80211_totext_enumint,
|
||||
/* fromtextptr */ p80211_fromtext_enumint,
|
||||
/* validfunptr */ p80211_isvalid_enumint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("p2CurrBSSID"),
|
||||
/* did */ P80211DID_MKID(0,0,0,0,
|
||||
/* */ P80211DID_ISTABLE_FALSE,
|
||||
/* */ P80211DID_ACCESS_READONLY,
|
||||
/* */ P80211_TYPE_OCTETSTR),
|
||||
/* flags */ 0,
|
||||
/* min */ 0,
|
||||
/* max */ 0,
|
||||
/* maxlen */ 6,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_octetstr,
|
||||
/* fromtextptr */ p80211_fromtext_octetstr,
|
||||
/* validfunptr */ p80211_isvalid_octetstr
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue