'p2req_join' from Clay Jones.
Superceded by the "real" scan/join/etc commands in the hbmac tree, so this will only go into the -ng tree.origin
parent
742257ef7e
commit
045b5d72f5
2
CHANGES
2
CHANGES
|
@ -41,6 +41,8 @@
|
|||
* Intersil Corporation as part of PRISM(R) chipset product development.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
- 'p2req_join' command, see doc/wlanctl-ng.p2req_join.txt
|
||||
This lets you join a specific SSID. Thanks to Clay Jones.
|
||||
- A couple more pcmcia/cf card idents
|
||||
- More deletions/fixes in wlan_compat.h
|
||||
-pre5
|
||||
|
|
1
THANKS
1
THANKS
|
@ -91,6 +91,7 @@ James Goodwin <jamesg@Filanet.com>
|
|||
Derek Atkins <warlord@mit.edu>
|
||||
Michael Beattie <mjb@debian.org>
|
||||
Joey Hess <joey@kitenet.net>
|
||||
Clay Jones <cjones1@email.com>
|
||||
|
||||
[Many, many more. If I've overlooked you and you want to be listed here,
|
||||
send me e-mail and I'll fix it. I _know_ a bunch of linux-wlan contributors
|
||||
|
|
|
@ -389,6 +389,224 @@ int prism2mgmt_join(wlandevice_t *wlandev, void *msgp)
|
|||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------
|
||||
* prism2mgmt_p2_join
|
||||
*
|
||||
* Join a specific BSS
|
||||
*
|
||||
* Arguments:
|
||||
* wlandev wlan device structure
|
||||
* msgp ptr to msg buffer
|
||||
*
|
||||
* Returns:
|
||||
* 0 success and done
|
||||
* <0 success, but we're waiting for something to finish.
|
||||
* >0 an error occurred while handling the message.
|
||||
* Side effects:
|
||||
*
|
||||
* Call context:
|
||||
* process thread (usually)
|
||||
* interrupt
|
||||
----------------------------------------------------------------*/
|
||||
int prism2mgmt_p2_join(wlandevice_t *wlandev, void *msgp)
|
||||
{
|
||||
int result = 0;
|
||||
prism2sta_priv_t *priv = (prism2sta_priv_t*)wlandev->priv;
|
||||
hfa384x_t *hw = priv->hw;
|
||||
p80211msg_p2req_join_t *msg = msgp;
|
||||
UINT16 reg;
|
||||
UINT16 port_type;
|
||||
p80211pstrd_t *pstr;
|
||||
UINT8 bytebuf[256];
|
||||
hfa384x_bytestr_t *p2bytestr = (hfa384x_bytestr_t*)bytebuf;
|
||||
hfa384x_JoinRequest_data_t joinreq;
|
||||
DBFENTER;
|
||||
|
||||
if (!priv->ap) {
|
||||
|
||||
/*** STATION ***/
|
||||
/* Set the PortType */
|
||||
msg->resultcode.status = P80211ENUM_msgitem_status_data_ok;
|
||||
msg->resultcode.data = P80211ENUM_resultcode_success;
|
||||
|
||||
port_type = 1; /* ess port */
|
||||
result = hfa384x_drvr_setconfig16(hw, HFA384x_RID_CNFPORTTYPE, &port_type);
|
||||
if ( result ) {
|
||||
WLAN_LOG_ERROR0("Failed to set Port Type\n");
|
||||
goto failed;
|
||||
}
|
||||
|
||||
/* Set the auth type */
|
||||
if ( msg->authtype.data == P80211ENUM_authalg_sharedkey ) {
|
||||
reg = HFA384x_CNFAUTHENTICATION_SHAREDKEY;
|
||||
} else {
|
||||
reg = HFA384x_CNFAUTHENTICATION_OPENSYSTEM;
|
||||
}
|
||||
result = hfa384x_drvr_setconfig16(hw, HFA384x_RID_CNFAUTHENTICATION, ®);
|
||||
if ( result ) {
|
||||
WLAN_LOG_ERROR0("Failed to set Authentication\n");
|
||||
goto failed;
|
||||
}
|
||||
|
||||
/* Turn off all roaming */
|
||||
reg = 3;
|
||||
hfa384x_drvr_setconfig16(hw, HFA384x_RID_CNFROAMINGMODE, ®);
|
||||
if ( result ) {
|
||||
WLAN_LOG_ERROR0("Failed to Turn off Roaming\n");
|
||||
goto failed;
|
||||
}
|
||||
|
||||
/* Basic rates */
|
||||
reg = 0;
|
||||
if ( msg->basicrate1.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg = p80211rate_to_p2bit(msg->basicrate1.data);
|
||||
}
|
||||
if ( msg->basicrate2.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->basicrate2.data);
|
||||
}
|
||||
if ( msg->basicrate3.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->basicrate3.data);
|
||||
}
|
||||
if ( msg->basicrate4.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->basicrate4.data);
|
||||
}
|
||||
if ( msg->basicrate5.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->basicrate5.data);
|
||||
}
|
||||
if ( msg->basicrate6.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->basicrate6.data);
|
||||
}
|
||||
if ( msg->basicrate7.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->basicrate7.data);
|
||||
}
|
||||
if ( msg->basicrate8.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->basicrate8.data);
|
||||
}
|
||||
if( reg == 0)
|
||||
reg = 0x03;
|
||||
result = hfa384x_drvr_setconfig16(hw, HFA384x_RID_CNFBASICRATES, ®);
|
||||
if ( result ) {
|
||||
WLAN_LOG_ERROR1("Failed to set basicrates=%d.\n", reg);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
/* Operational rates (supprates and txratecontrol) */
|
||||
reg = 0;
|
||||
if ( msg->operationalrate1.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg = p80211rate_to_p2bit(msg->operationalrate1.data);
|
||||
}
|
||||
if ( msg->operationalrate2.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->operationalrate2.data);
|
||||
}
|
||||
if ( msg->operationalrate3.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->operationalrate3.data);
|
||||
}
|
||||
if ( msg->operationalrate4.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->operationalrate4.data);
|
||||
}
|
||||
if ( msg->operationalrate5.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->operationalrate5.data);
|
||||
}
|
||||
if ( msg->operationalrate6.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->operationalrate6.data);
|
||||
}
|
||||
if ( msg->operationalrate7.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->operationalrate7.data);
|
||||
}
|
||||
if ( msg->operationalrate8.status == P80211ENUM_msgitem_status_data_ok ) {
|
||||
reg |= p80211rate_to_p2bit(msg->operationalrate8.data);
|
||||
}
|
||||
if( reg == 0)
|
||||
reg = 0x0f;
|
||||
result = hfa384x_drvr_setconfig16(hw, HFA384x_RID_CNFSUPPRATES, ®);
|
||||
if ( result ) {
|
||||
WLAN_LOG_ERROR1("Failed to set supprates=%d.\n", reg);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
result = hfa384x_drvr_setconfig16(hw, HFA384x_RID_TXRATECNTL, ®);
|
||||
if ( result ) {
|
||||
WLAN_LOG_ERROR1("Failed to set txrates=%d.\n", reg);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
/* Set the ssid */
|
||||
memset(bytebuf, 0, 256);
|
||||
pstr = (p80211pstrd_t*)&(msg->ssid.data);
|
||||
prism2mgmt_pstr2bytestr(p2bytestr, pstr);
|
||||
result = hfa384x_drvr_setconfig(
|
||||
hw, HFA384x_RID_CNFDESIREDSSID,
|
||||
bytebuf, HFA384x_RID_CNFDESIREDSSID_LEN);
|
||||
if ( result ) {
|
||||
WLAN_LOG_ERROR0("Failed to set SSID\n");
|
||||
goto failed;
|
||||
}
|
||||
|
||||
#if (WLAN_HOSTIF != WLAN_USB)
|
||||
/* Enable the interrupts */
|
||||
reg = HFA384x_INTEN_INFDROP_SET(1) |
|
||||
HFA384x_INTEN_INFO_SET(1) |
|
||||
HFA384x_INTEN_ALLOC_SET(1) |
|
||||
HFA384x_INTEN_TXEXC_SET(1) |
|
||||
HFA384x_INTEN_TX_SET(1) |
|
||||
HFA384x_INTEN_RX_SET(1);
|
||||
hfa384x_setreg(hw, 0xffff, HFA384x_EVSTAT);
|
||||
hfa384x_setreg(hw, reg, HFA384x_INTEN);
|
||||
#endif
|
||||
/* Enable the Port */
|
||||
result = hfa384x_cmd_enable(hw, 0);
|
||||
if ( result ) {
|
||||
WLAN_LOG_ERROR1("Enable macport failed, result=%d.\n", result);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
/* Fill in the join request */
|
||||
joinreq.channel = msg->channel.data;
|
||||
memcpy( joinreq.bssid, ((unsigned char *) &msg->bssid.data) + 1, WLAN_BSSID_LEN);
|
||||
hw->joinreq = joinreq;
|
||||
hw->join_ap = 1;
|
||||
|
||||
/* Send the join request */
|
||||
result = hfa384x_drvr_setconfig( hw,
|
||||
HFA384x_RID_JOINREQUEST,
|
||||
&joinreq, HFA384x_RID_JOINREQUEST_LEN);
|
||||
if(result != 0) {
|
||||
WLAN_LOG_ERROR1("Join request failed, result=%d.\n", result);
|
||||
goto failed;
|
||||
}
|
||||
if (priv->log) {
|
||||
printk(KERN_INFO "p2_join: Join request issued channel=%d bssid=%02X:%02X:%02X:%02X:%02X:%02X ssid=%s.\n",
|
||||
joinreq.channel,
|
||||
joinreq.bssid[0],
|
||||
joinreq.bssid[1],
|
||||
joinreq.bssid[2],
|
||||
joinreq.bssid[3],
|
||||
joinreq.bssid[4],
|
||||
joinreq.bssid[5],
|
||||
bytebuf+2);
|
||||
}
|
||||
} else {
|
||||
|
||||
/*** ACCESS POINT ***/
|
||||
|
||||
/* Never supported by APs */
|
||||
msg->resultcode.status = P80211ENUM_msgitem_status_data_ok;
|
||||
msg->resultcode.data = P80211ENUM_resultcode_not_supported;
|
||||
}
|
||||
|
||||
goto done;
|
||||
failed:
|
||||
WLAN_LOG_DEBUG1(1, "Failed to set a config option, result=%d\n", result);
|
||||
msg->resultcode.data = P80211ENUM_resultcode_invalid_parameters;
|
||||
|
||||
done:
|
||||
result = 0;
|
||||
|
||||
DBFEXIT;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------
|
||||
* prism2mgmt_authenticate
|
||||
*
|
||||
|
|
|
@ -974,6 +974,10 @@ int prism2sta_mlmerequest(wlandevice_t *wlandev, p80211msg_t *msg)
|
|||
/*
|
||||
* Prism2 specific messages
|
||||
*/
|
||||
case DIDmsg_p2req_join :
|
||||
WLAN_LOG_DEBUG0(2,"Received p2 join request\n");
|
||||
result = prism2mgmt_p2_join(wlandev, msg);
|
||||
break;
|
||||
case DIDmsg_p2req_readpda :
|
||||
WLAN_LOG_DEBUG0(2,"Received mlme readpda request\n");
|
||||
result = prism2mgmt_readpda(wlandev, msg);
|
||||
|
@ -1207,6 +1211,8 @@ UINT32 prism2sta_ifstate(wlandevice_t *wlandev, UINT32 ifstate)
|
|||
break;
|
||||
}
|
||||
wlandev->msdstate = WLAN_MSD_RUNNING;
|
||||
hw->join_ap = 0;
|
||||
hw->join_retries = 60;
|
||||
result = P80211ENUM_resultcode_success;
|
||||
break;
|
||||
case WLAN_MSD_RUNNING:
|
||||
|
@ -1842,6 +1848,12 @@ void prism2sta_inf_linkstatus(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf)
|
|||
* Indicate authentication and/or association
|
||||
* Enable Transmits, Receives and pass up data frames
|
||||
*/
|
||||
|
||||
/* If we are joining a specific AP, set our state and reset retries */
|
||||
if(hw->join_ap == 1)
|
||||
hw->join_ap = 2;
|
||||
hw->join_retries = 60;
|
||||
|
||||
WLAN_LOG_DEBUG0(1,"linkstatus=CONNECTED\n");
|
||||
#if (WLAN_HOSTIF == WLAN_USB)
|
||||
/* For USB devices, all the [get|set]config calls that
|
||||
|
@ -1902,7 +1914,21 @@ void prism2sta_inf_linkstatus(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf)
|
|||
* Indicate Deauthentication
|
||||
* Block Transmits, Ignore receives of data frames
|
||||
*/
|
||||
WLAN_LOG_DEBUG0(1,"linkstatus=DISCONNECTED (unhandled)\n");
|
||||
if(hw->join_ap == 2)
|
||||
{
|
||||
hfa384x_JoinRequest_data_t joinreq;
|
||||
joinreq = hw->joinreq;
|
||||
/* Send the join request */
|
||||
hfa384x_drvr_setconfig( hw,
|
||||
HFA384x_RID_JOINREQUEST,
|
||||
&joinreq, HFA384x_RID_JOINREQUEST_LEN);
|
||||
WLAN_LOG_DEBUG0(1,"linkstatus=DISCONNECTED (re-submitting join)\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
WLAN_LOG_DEBUG0(1,"linkstatus=DISCONNECTED (unhandled)\n");
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case HFA384x_LINK_AP_CHANGE:
|
||||
|
@ -1957,7 +1983,20 @@ void prism2sta_inf_linkstatus(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf)
|
|||
* Response:
|
||||
* Disable Transmits, Ignore receives of data frames
|
||||
*/
|
||||
WLAN_LOG_DEBUG0(1,"linkstatus=ASSOCFAIL (unhandled)\n");
|
||||
if(hw->join_ap && --hw->join_retries > 0)
|
||||
{
|
||||
hfa384x_JoinRequest_data_t joinreq;
|
||||
joinreq = hw->joinreq;
|
||||
/* Send the join request */
|
||||
hfa384x_drvr_setconfig( hw,
|
||||
HFA384x_RID_JOINREQUEST,
|
||||
&joinreq, HFA384x_RID_JOINREQUEST_LEN);
|
||||
WLAN_LOG_DEBUG0(1,"linkstatus=ASSOCFAIL (re-submitting join)\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
WLAN_LOG_DEBUG0(1,"linkstatus=ASSOCFAIL (unhandled)\n");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -2393,6 +2393,9 @@ typedef struct hfa384x
|
|||
UINT16 infofid;
|
||||
struct semaphore infofid_sem;
|
||||
#endif /* !USB */
|
||||
int join_ap; /* are we joined to a specific ap */
|
||||
int join_retries; /* number of join retries till we fail */
|
||||
hfa384x_JoinRequest_data_t joinreq; /* join request saved data */
|
||||
} hfa384x_t;
|
||||
|
||||
/*=============================================================*/
|
||||
|
|
|
@ -224,6 +224,7 @@ int prism2mgmt_powermgmt(wlandevice_t *wlandev, void *msgp);
|
|||
int prism2mgmt_scan(wlandevice_t *wlandev, void *msgp);
|
||||
int prism2mgmt_scan_results(wlandevice_t *wlandev, void *msgp);
|
||||
int prism2mgmt_join(wlandevice_t *wlandev, void *msgp);
|
||||
int prism2mgmt_p2_join(wlandevice_t *wlandev, void *msgp);
|
||||
int prism2mgmt_authenticate(wlandevice_t *wlandev, void *msgp);
|
||||
int prism2mgmt_deauthenticate(wlandevice_t *wlandev, void *msgp);
|
||||
int prism2mgmt_associate(wlandevice_t *wlandev, void *msgp);
|
||||
|
|
|
@ -2842,6 +2842,325 @@ p80211meta_t MKINDMETANAME(lnxind_wlansniffrm)[] = {
|
|||
UINT32 MKINDMETASIZE(lnxind_wlansniffrm) =
|
||||
sizeof(MKINDMETANAME(lnxind_wlansniffrm))/sizeof(p80211meta_t);
|
||||
|
||||
/*--------------------------------------------------------------------*/
|
||||
/* metadata for the p2req_join request message arguments */
|
||||
|
||||
extern UINT32 MKREQMETASIZE(p2req_join);
|
||||
|
||||
p80211meta_t MKREQMETANAME(p2req_join)[] = {
|
||||
{
|
||||
/* name */ (char *)&(MKREQMETASIZE(p2req_join)),
|
||||
/* did */ 0,
|
||||
/* flags */ 0,
|
||||
/* min */ 0,
|
||||
/* max */ 0,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ NULL,
|
||||
/* fromtextptr */ NULL,
|
||||
/* validfunptr */ NULL
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("bssid"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(ISREQUIRED, ISREQUEST, 0UL),
|
||||
/* min */ 0,
|
||||
/* max */ 0,
|
||||
/* maxlen */ MAXLEN_PSTR6,
|
||||
/* minlen */ MAXLEN_PSTR6,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_octetstr,
|
||||
/* fromtextptr */ p80211_fromtext_octetstr,
|
||||
/* validfunptr */ p80211_isvalid_octetstr
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("basicrate1"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("basicrate2"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("basicrate3"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("basicrate4"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("basicrate5"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("basicrate6"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("basicrate7"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("basicrate8"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("operationalrate1"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("operationalrate2"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("operationalrate3"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("operationalrate4"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("operationalrate5"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("operationalrate6"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("operationalrate7"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("operationalrate8"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 2,
|
||||
/* max */ 127,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("ssid"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(ISREQUIRED, ISREQUEST, 0UL),
|
||||
/* min */ 0,
|
||||
/* max */ 0,
|
||||
/* maxlen */ MAXLEN_PSTR32,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_displaystr,
|
||||
/* fromtextptr */ p80211_fromtext_displaystr,
|
||||
/* validfunptr */ p80211_isvalid_displaystr
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("channel"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(0UL, ISREQUEST, 0UL),
|
||||
/* min */ 1,
|
||||
/* max */ 14,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ NULL,
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_boundedint,
|
||||
/* fromtextptr */ p80211_fromtext_boundedint,
|
||||
/* validfunptr */ p80211_isvalid_boundedint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("authtype"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(ISREQUIRED, ISREQUEST, ISCONFIRM),
|
||||
/* min */ 0,
|
||||
/* max */ 0,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ &MKENUMNAME(authalg),
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_enumint,
|
||||
/* fromtextptr */ p80211_fromtext_enumint,
|
||||
/* validfunptr */ p80211_isvalid_enumint
|
||||
},
|
||||
{
|
||||
/* name */ MKITEMNAME("resultcode"),
|
||||
/* did */ 0,
|
||||
/* flags */ P80211ITEM_SETFLAGS(ISREQUIRED, 0UL, ISCONFIRM),
|
||||
/* min */ 0,
|
||||
/* max */ 0,
|
||||
/* maxlen */ 0,
|
||||
/* minlen */ 0,
|
||||
/* enumptr */ &MKENUMNAME(resultcode),
|
||||
/* collptr */ NULL,
|
||||
/* totextptr */ p80211_totext_enumint,
|
||||
/* fromtextptr */ p80211_fromtext_enumint,
|
||||
/* validfunptr */ p80211_isvalid_enumint
|
||||
}
|
||||
}; /* end of p2req_join request message metadata list */
|
||||
|
||||
UINT32 MKREQMETASIZE(p2req_join) =
|
||||
sizeof(MKREQMETANAME(p2req_join))/sizeof(p80211meta_t);
|
||||
|
||||
/*--------------------------------------------------------------------*/
|
||||
/* metadata for the p2req_readpda request message arguments */
|
||||
|
||||
|
@ -4336,6 +4655,10 @@ grplistitem_t MKGRPMETANAME(p2req)[] = {
|
|||
(char *)&MKGRPMETASIZE(p2req),
|
||||
NULL
|
||||
},
|
||||
{
|
||||
"p2req_join",
|
||||
MKREQMETANAME(p2req_join)
|
||||
},
|
||||
{
|
||||
"p2req_readpda",
|
||||
MKREQMETANAME(p2req_readpda)
|
||||
|
|
Loading…
Reference in New Issue