Integration of the changes during the OSCON2000 trip to CA.

This commit is contained in:
mark 2000-08-11 15:10:45 +00:00
parent ce58295de8
commit 0204d1c672
7 changed files with 423 additions and 66 deletions

View file

@ -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)

View file

@ -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 ) {

View file

@ -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;

View file

@ -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:

View file

@ -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;
}

View file

@ -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
--------------------------------------------------------------------*/

View file

@ -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
}
};