您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ IEEE80211_FC函数代码示例

51自学网 2021-06-01 21:28:26
  C++
这篇教程C++ IEEE80211_FC函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中IEEE80211_FC函数的典型用法代码示例。如果您正苦于以下问题:C++ IEEE80211_FC函数的具体用法?C++ IEEE80211_FC怎么用?C++ IEEE80211_FC使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了IEEE80211_FC函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: wpa_driver_hostap_poll_client

static void wpa_driver_hostap_poll_client(void *priv, const u8 *own_addr,					  const u8 *addr, int qos){	struct ieee80211_hdr hdr;	os_memset(&hdr, 0, sizeof(hdr));	/*	 * WLAN_FC_STYPE_NULLFUNC would be more appropriate,	 * but it is apparently not retried so TX Exc events	 * are not received for it.	 * This is the reason the driver overrides the default	 * handling.	 */	hdr.frame_control = IEEE80211_FC(WLAN_FC_TYPE_DATA,					 WLAN_FC_STYPE_DATA);	hdr.frame_control |=		host_to_le16(WLAN_FC_FROMDS);	os_memcpy(hdr.IEEE80211_DA_FROMDS, addr, ETH_ALEN);	os_memcpy(hdr.IEEE80211_BSSID_FROMDS, own_addr, ETH_ALEN);	os_memcpy(hdr.IEEE80211_SA_FROMDS, own_addr, ETH_ALEN);	hostap_send_mlme(priv, (u8 *)&hdr, sizeof(hdr), 0, 0, NULL, 0);}
开发者ID:9A9A,项目名称:wpa_supplicant-fork,代码行数:25,


示例2: wnm_send_bss_transition_mgmt_query

int wnm_send_bss_transition_mgmt_query(struct wpa_supplicant *wpa_s,				       u8 query_reason){	u8 buf[1000], *pos;	struct ieee80211_mgmt *mgmt;	size_t len;	int ret;	wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Query to "		   MACSTR " query_reason=%u",		   MAC2STR(wpa_s->bssid), query_reason);	mgmt = (struct ieee80211_mgmt *) buf;	os_memset(&buf, 0, sizeof(buf));	os_memcpy(mgmt->da, wpa_s->bssid, ETH_ALEN);	os_memcpy(mgmt->sa, wpa_s->own_addr, ETH_ALEN);	os_memcpy(mgmt->bssid, wpa_s->bssid, ETH_ALEN);	mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					   WLAN_FC_STYPE_ACTION);	mgmt->u.action.category = WLAN_ACTION_WNM;	mgmt->u.action.u.bss_tm_query.action = WNM_BSS_TRANS_MGMT_QUERY;	mgmt->u.action.u.bss_tm_query.dialog_token = 1;	mgmt->u.action.u.bss_tm_query.query_reason = query_reason;	pos = mgmt->u.action.u.bss_tm_query.variable;	len = pos - (u8 *) &mgmt->u.action.category;	ret = wpa_drv_send_action(wpa_s, wpa_s->assoc_freq, 0, wpa_s->bssid,				  wpa_s->own_addr, wpa_s->bssid,				  &mgmt->u.action.category, len, 0);	return ret;}
开发者ID:LiZhaoxing,项目名称:hostapd,代码行数:33,


示例3: hostapd_wpa_auth_send_ft_action

static int hostapd_wpa_auth_send_ft_action(void *ctx, const u8 *dst,					   const u8 *data, size_t data_len){	struct hostapd_data *hapd = ctx;	int res;	struct ieee80211_mgmt *m;	size_t mlen;	struct sta_info *sta;	sta = ap_get_sta(hapd, dst);	if (sta == NULL || sta->wpa_sm == NULL)		return -1;	m = os_zalloc(sizeof(*m) + data_len);	if (m == NULL)		return -1;	mlen = ((u8 *) &m->u - (u8 *) m) + data_len;	m->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					WLAN_FC_STYPE_ACTION);	os_memcpy(m->da, dst, ETH_ALEN);	os_memcpy(m->sa, hapd->own_addr, ETH_ALEN);	os_memcpy(m->bssid, hapd->own_addr, ETH_ALEN);	os_memcpy(&m->u, data, data_len);	res = hostapd_drv_send_mlme(hapd, (u8 *) m, mlen);	os_free(m);	return res;}
开发者ID:09sea98,项目名称:rtl8188eu,代码行数:28,


示例4: ibss_rsn_send_auth

static int ibss_rsn_send_auth(struct ibss_rsn *ibss_rsn, const u8 *da, int seq){	struct ieee80211_mgmt auth;	const size_t auth_length = IEEE80211_HDRLEN + sizeof(auth.u.auth);	struct wpa_supplicant *wpa_s = ibss_rsn->wpa_s;	if (wpa_s->driver->send_frame == NULL)		return -1;	os_memset(&auth, 0, sizeof(auth));	auth.frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					  WLAN_FC_STYPE_AUTH);	os_memcpy(auth.da, da, ETH_ALEN);	os_memcpy(auth.sa, wpa_s->own_addr, ETH_ALEN);	os_memcpy(auth.bssid, wpa_s->bssid, ETH_ALEN);	auth.u.auth.auth_alg = host_to_le16(WLAN_AUTH_OPEN);	auth.u.auth.auth_transaction = host_to_le16(seq);	auth.u.auth.status_code = host_to_le16(WLAN_STATUS_SUCCESS);	wpa_printf(MSG_DEBUG, "RSN: IBSS TX Auth frame (SEQ %d) to " MACSTR,		   seq, MAC2STR(da));	return wpa_s->driver->send_frame(wpa_s->drv_priv, (u8 *) &auth,					 auth_length, 0);}
开发者ID:MIPS,项目名称:external-wpa_supplicant_8,代码行数:27,


示例5: hostapd_header_beacon

static int hostapd_header_beacon(packet_element_t* p, u8* macaddr, u16 beacon_period){    struct ieee80211_mgmt* head=NULL;    p->len = (u8)(int)&(head->u.beacon.variable[0]);    head = (struct ieee80211_mgmt*)malloc(p->len);    // FRAME CONTROL (2) : PROTOCOL=0 + TYPE=MNGT + SUBTYPE=BEACON, FROMDS, TODS....    head->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, WLAN_FC_STYPE_BEACON);    // FRAME DURATION (2) : 0 (typic for broadcast/multicast)    head->duration = host_to_le16(0);    // ADDR1 (6) = DA ( destination = broadcast)    memcpy(head->da, broadcast_ether_addr, ETH_ALEN);    // ADDR2 (6) = SA ( source = me)    memcpy(head->sa, macaddr, ETH_ALEN);    // ADDR3 (6) = BSSID ( me)    memcpy(head->bssid, macaddr, ETH_ALEN);    // SEQUENCE-CTRL (2)    head->seq_ctrl = host_to_le16(0);    // FRAME BODY FIXED ELEMENTS FOR BEACON    // BEACON TIMESTAMP (8)    memset(head->u.beacon.timestamp, 0, sizeof(head->u.beacon.timestamp)); //set by PHY ?    // BEACON INTERVAL (2)    head->u.beacon.beacon_int = host_to_le16(beacon_period);    // BEACON CAPA (2)    head->u.beacon.capab_info = host_to_le16(0x401); // TODO: check capabilities    p->d = (u8*)head;    return p->len;}
开发者ID:chtimi59,项目名称:emilie,代码行数:29,


示例6: hostap_sta_deauth

static int hostap_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr,			     int reason){	struct hostap_driver_data *drv = priv;	struct ieee80211_mgmt mgmt;	if (is_broadcast_ether_addr(addr)) {		/*		 * New Prism2.5/3 STA firmware versions seem to have issues		 * with this broadcast deauth frame. This gets the firmware in		 * odd state where nothing works correctly, so let's skip		 * sending this for the hostap driver.		 */		return 0;	}	memset(&mgmt, 0, sizeof(mgmt));	mgmt.frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					  WLAN_FC_STYPE_DEAUTH);	memcpy(mgmt.da, addr, ETH_ALEN);	memcpy(mgmt.sa, own_addr, ETH_ALEN);	memcpy(mgmt.bssid, own_addr, ETH_ALEN);	mgmt.u.deauth.reason_code = host_to_le16(reason);	return hostap_send_mlme(drv, (u8 *) &mgmt, IEEE80211_HDRLEN +				sizeof(mgmt.u.deauth), 0, 0, NULL, 0);}
开发者ID:9A9A,项目名称:wpa_supplicant-fork,代码行数:26,


示例7: wnm_send_disassoc_imminent

int wnm_send_disassoc_imminent(struct hostapd_data *hapd,			       struct sta_info *sta, int disassoc_timer){	u8 buf[1000], *pos;	struct ieee80211_mgmt *mgmt;	os_memset(buf, 0, sizeof(buf));	mgmt = (struct ieee80211_mgmt *) buf;	mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					   WLAN_FC_STYPE_ACTION);	os_memcpy(mgmt->da, sta->addr, ETH_ALEN);	os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN);	os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN);	mgmt->u.action.category = WLAN_ACTION_WNM;	mgmt->u.action.u.bss_tm_req.action = WNM_BSS_TRANS_MGMT_REQ;	mgmt->u.action.u.bss_tm_req.dialog_token = 1;	mgmt->u.action.u.bss_tm_req.req_mode =		WNM_BSS_TM_REQ_DISASSOC_IMMINENT;	mgmt->u.action.u.bss_tm_req.disassoc_timer =		host_to_le16(disassoc_timer);	mgmt->u.action.u.bss_tm_req.validity_interval = 0;	pos = mgmt->u.action.u.bss_tm_req.variable;	wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request frame to indicate imminent disassociation (disassoc_timer=%d) to "		   MACSTR, disassoc_timer, MAC2STR(sta->addr));	if (hostapd_drv_send_mlme(hapd, buf, pos - buf, 0, NULL, 0) < 0) {		wpa_printf(MSG_DEBUG, "Failed to send BSS Transition "			   "Management Request frame");		return -1;	}	return 0;}
开发者ID:PDi-Communication-Systems-Inc,项目名称:lollipop_external_wpa_supplicant_8,代码行数:34,


示例8: ieee802_11_send_sa_query_req

/* MLME-SAQuery.request */void ieee802_11_send_sa_query_req(struct hostapd_data *hapd,				  const u8 *addr, const u8 *trans_id){	struct ieee80211_mgmt mgmt;	u8 *end;	wpa_printf(MSG_DEBUG, "IEEE 802.11: Sending SA Query Request to "		   MACSTR, MAC2STR(addr));	wpa_hexdump(MSG_DEBUG, "IEEE 802.11: SA Query Transaction ID",		    trans_id, WLAN_SA_QUERY_TR_ID_LEN);	os_memset(&mgmt, 0, sizeof(mgmt));	mgmt.frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					  WLAN_FC_STYPE_ACTION);	os_memcpy(mgmt.da, addr, ETH_ALEN);	os_memcpy(mgmt.sa, hapd->own_addr, ETH_ALEN);	os_memcpy(mgmt.bssid, hapd->own_addr, ETH_ALEN);	mgmt.u.action.category = WLAN_ACTION_SA_QUERY;	mgmt.u.action.u.sa_query_req.action = WLAN_SA_QUERY_REQUEST;	os_memcpy(mgmt.u.action.u.sa_query_req.trans_id, trans_id,		  WLAN_SA_QUERY_TR_ID_LEN);	end = mgmt.u.action.u.sa_query_req.trans_id + WLAN_SA_QUERY_TR_ID_LEN;	if (hostapd_drv_send_mlme(hapd, &mgmt, end - (u8 *) &mgmt, 0) < 0)		wpa_printf(MSG_INFO, "ieee802_11_send_sa_query_req: send failed");}
开发者ID:Adrellias,项目名称:mana,代码行数:26,


示例9: hostapd_ctrl_iface_disassociate

int hostapd_ctrl_iface_disassociate(struct hostapd_data *hapd,                                    const char *txtaddr){    u8 addr[ETH_ALEN];    struct sta_info *sta;    const char *pos;    u16 reason = WLAN_REASON_PREV_AUTH_NOT_VALID;    wpa_dbg(hapd->msg_ctx, MSG_DEBUG, "CTRL_IFACE DISASSOCIATE %s",            txtaddr);    if (hwaddr_aton(txtaddr, addr))        return -1;    pos = os_strstr(txtaddr, " test=");    if (pos) {        struct ieee80211_mgmt mgmt;        int encrypt;        if (hapd->driver->send_frame == NULL)            return -1;        pos += 6;        encrypt = atoi(pos);        os_memset(&mgmt, 0, sizeof(mgmt));        mgmt.frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,                                          WLAN_FC_STYPE_DISASSOC);        os_memcpy(mgmt.da, addr, ETH_ALEN);        os_memcpy(mgmt.sa, hapd->own_addr, ETH_ALEN);        os_memcpy(mgmt.bssid, hapd->own_addr, ETH_ALEN);        mgmt.u.disassoc.reason_code =            host_to_le16(WLAN_REASON_PREV_AUTH_NOT_VALID);        if (hapd->driver->send_frame(hapd->drv_priv, (u8 *) &mgmt,                                     IEEE80211_HDRLEN +                                     sizeof(mgmt.u.deauth),                                     encrypt) < 0)            return -1;        return 0;    }#ifdef CONFIG_P2P_MANAGER    pos = os_strstr(txtaddr, " p2p=");    if (pos) {        return p2p_manager_disconnect(hapd, WLAN_FC_STYPE_DISASSOC,                                      atoi(pos + 5), addr);    }#endif /* CONFIG_P2P_MANAGER */    pos = os_strstr(txtaddr, " reason=");    if (pos)        reason = atoi(pos + 8);    hostapd_drv_sta_disassoc(hapd, addr, reason);    sta = ap_get_sta(hapd, addr);    if (sta)        ap_sta_disassociate(hapd, sta, reason);    else if (addr[0] == 0xff)        hostapd_free_stas(hapd);    return 0;}
开发者ID:anilkumarnagella,项目名称:redpine,代码行数:59,


示例10: CW80211AssembleIEFrameControl

/* FIXED LEN IE */CWBool CW80211AssembleIEFrameControl(char * frame, int * offset, int frameType, int frameSubtype) {		short int val = IEEE80211_FC(frameType, frameSubtype);		CW_COPY_MEMORY(frame, &(val), LEN_IE_FRAME_CONTROL);	(*offset) += LEN_IE_FRAME_CONTROL;		return CW_TRUE;}
开发者ID:BeanGu,项目名称:openCAPWAP,代码行数:10,


示例11: wnm_send_bss_transition_mgmt_resp

static void wnm_send_bss_transition_mgmt_resp(	struct wpa_supplicant *wpa_s, u8 dialog_token,	enum bss_trans_mgmt_status_code status, u8 delay,	const u8 *target_bssid){	u8 buf[1000], *pos;	struct ieee80211_mgmt *mgmt;	size_t len;	int res;	wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Response "		   "to " MACSTR " dialog_token=%u status=%u delay=%d",		   MAC2STR(wpa_s->bssid), dialog_token, status, delay);	if (!wpa_s->current_bss) {		wpa_printf(MSG_DEBUG,			   "WNM: Current BSS not known - drop response");		return;	}	mgmt = (struct ieee80211_mgmt *) buf;	os_memset(&buf, 0, sizeof(buf));	os_memcpy(mgmt->da, wpa_s->bssid, ETH_ALEN);	os_memcpy(mgmt->sa, wpa_s->own_addr, ETH_ALEN);	os_memcpy(mgmt->bssid, wpa_s->bssid, ETH_ALEN);	mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					   WLAN_FC_STYPE_ACTION);	mgmt->u.action.category = WLAN_ACTION_WNM;	mgmt->u.action.u.bss_tm_resp.action = WNM_BSS_TRANS_MGMT_RESP;	mgmt->u.action.u.bss_tm_resp.dialog_token = dialog_token;	mgmt->u.action.u.bss_tm_resp.status_code = status;	mgmt->u.action.u.bss_tm_resp.bss_termination_delay = delay;	pos = mgmt->u.action.u.bss_tm_resp.variable;	if (target_bssid) {		os_memcpy(pos, target_bssid, ETH_ALEN);		pos += ETH_ALEN;	} else if (status == WNM_BSS_TM_ACCEPT) {		/*		 * P802.11-REVmc clarifies that the Target BSSID field is always		 * present when status code is zero, so use a fake value here if		 * no BSSID is yet known.		 */		os_memset(pos, 0, ETH_ALEN);		pos += ETH_ALEN;	}	len = pos - (u8 *) &mgmt->u.action.category;	res = wpa_drv_send_action(wpa_s, wpa_s->assoc_freq, 0, wpa_s->bssid,				  wpa_s->own_addr, wpa_s->bssid,				  &mgmt->u.action.category, len, 0);	if (res < 0) {		wpa_printf(MSG_DEBUG,			   "WNM: Failed to send BSS Transition Management Response");	}}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:55,


示例12: ieee802_11_send_bss_trans_mgmt_request

static int ieee802_11_send_bss_trans_mgmt_request(struct hostapd_data *hapd,						  const u8 *addr,						  u8 dialog_token,						  const char *url){	struct ieee80211_mgmt *mgmt;	size_t url_len, len;	u8 *pos;	int res;	if (url)		url_len = os_strlen(url);	else		url_len = 0;	mgmt = os_zalloc(sizeof(*mgmt) + (url_len ? 1 + url_len : 0));	if (mgmt == NULL)		return -1;	os_memcpy(mgmt->da, addr, ETH_ALEN);	os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN);	os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN);	mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					   WLAN_FC_STYPE_ACTION);	mgmt->u.action.category = WLAN_ACTION_WNM;	mgmt->u.action.u.bss_tm_req.action = WNM_BSS_TRANS_MGMT_REQ;	mgmt->u.action.u.bss_tm_req.dialog_token = dialog_token;	mgmt->u.action.u.bss_tm_req.req_mode = 0;	mgmt->u.action.u.bss_tm_req.disassoc_timer = host_to_le16(0);	mgmt->u.action.u.bss_tm_req.validity_interval = 1;	pos = mgmt->u.action.u.bss_tm_req.variable;	if (url) {		*pos++ += url_len;		os_memcpy(pos, url, url_len);		pos += url_len;	}	wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request to "		   MACSTR " dialog_token=%u req_mode=0x%x disassoc_timer=%u "		   "validity_interval=%u",		   MAC2STR(addr), dialog_token,		   mgmt->u.action.u.bss_tm_req.req_mode,		   le_to_host16(mgmt->u.action.u.bss_tm_req.disassoc_timer),		   mgmt->u.action.u.bss_tm_req.validity_interval);	len = pos - &mgmt->u.action.category;	res = hostapd_drv_send_action(hapd, hapd->iface->freq, 0,				      mgmt->da, &mgmt->u.action.category, len);	os_free(mgmt);	return res;}
开发者ID:PDi-Communication-Systems-Inc,项目名称:lollipop_external_wpa_supplicant_8,代码行数:50,


示例13: p2p_manager_disconnect

static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype,				  u8 minor_reason_code, const u8 *addr){	struct ieee80211_mgmt *mgmt;	int ret;	u8 *pos;	if (hapd->driver->send_frame == NULL)		return -1;	mgmt = os_zalloc(sizeof(*mgmt) + 100);	if (mgmt == NULL)		return -1;	mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, stype);	wpa_dbg(hapd->msg_ctx, MSG_DEBUG, "P2P: Disconnect STA " MACSTR		" with minor reason code %u (stype=%u (%s))",		MAC2STR(addr), minor_reason_code, stype,		fc2str(mgmt->frame_control));	os_memcpy(mgmt->da, addr, ETH_ALEN);	os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN);	os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN);	if (stype == WLAN_FC_STYPE_DEAUTH) {		mgmt->u.deauth.reason_code =			host_to_le16(WLAN_REASON_PREV_AUTH_NOT_VALID);		pos = (u8 *) (&mgmt->u.deauth.reason_code + 1);	} else {		mgmt->u.disassoc.reason_code =			host_to_le16(WLAN_REASON_PREV_AUTH_NOT_VALID);		pos = (u8 *) (&mgmt->u.disassoc.reason_code + 1);	}	*pos++ = WLAN_EID_VENDOR_SPECIFIC;	*pos++ = 4 + 3 + 1;	WPA_PUT_BE32(pos, P2P_IE_VENDOR_TYPE);	pos += 4;	*pos++ = P2P_ATTR_MINOR_REASON_CODE;	WPA_PUT_LE16(pos, 1);	pos += 2;	*pos++ = minor_reason_code;	ret = hapd->driver->send_frame(hapd->drv_priv, (u8 *) mgmt,				       pos - (u8 *) mgmt, 1);	os_free(mgmt);	return ret < 0 ? -1 : 0;}
开发者ID:Bebooo43,项目名称:android_hardware_mediatek,代码行数:49,


示例14: wnm_send_ess_disassoc_imminent

int wnm_send_ess_disassoc_imminent(struct hostapd_data *hapd,				   struct sta_info *sta, const char *url,				   int disassoc_timer){	u8 buf[1000], *pos;	struct ieee80211_mgmt *mgmt;	size_t url_len;	os_memset(buf, 0, sizeof(buf));	mgmt = (struct ieee80211_mgmt *) buf;	mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					   WLAN_FC_STYPE_ACTION);	os_memcpy(mgmt->da, sta->addr, ETH_ALEN);	os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN);	os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN);	mgmt->u.action.category = WLAN_ACTION_WNM;	mgmt->u.action.u.bss_tm_req.action = WNM_BSS_TRANS_MGMT_REQ;	mgmt->u.action.u.bss_tm_req.dialog_token = 1;	mgmt->u.action.u.bss_tm_req.req_mode =		WNM_BSS_TM_REQ_DISASSOC_IMMINENT |		WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT;	mgmt->u.action.u.bss_tm_req.disassoc_timer =		host_to_le16(disassoc_timer);	mgmt->u.action.u.bss_tm_req.validity_interval = 0x01;	pos = mgmt->u.action.u.bss_tm_req.variable;	/* Session Information URL */	url_len = os_strlen(url);	if (url_len > 255)		return -1;	*pos++ = url_len;	os_memcpy(pos, url, url_len);	pos += url_len;	if (hostapd_drv_send_mlme(hapd, buf, pos - buf, 0, NULL, 0) < 0) {		wpa_printf(MSG_DEBUG, "Failed to send BSS Transition "			   "Management Request frame");		return -1;	}	if (disassoc_timer) {		/* send disassociation frame after time-out */		set_disassoc_timer(hapd, sta, disassoc_timer);	}	return 0;}
开发者ID:PDi-Communication-Systems-Inc,项目名称:lollipop_external_wpa_supplicant_8,代码行数:48,


示例15: hostap_sta_deauth

static int hostap_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr,			     int reason){	struct hostap_driver_data *drv = priv;	struct ieee80211_mgmt mgmt;	memset(&mgmt, 0, sizeof(mgmt));	mgmt.frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					  WLAN_FC_STYPE_DEAUTH);	memcpy(mgmt.da, addr, ETH_ALEN);	memcpy(mgmt.sa, own_addr, ETH_ALEN);	memcpy(mgmt.bssid, own_addr, ETH_ALEN);	mgmt.u.deauth.reason_code = host_to_le16(reason);	return hostap_send_mlme(drv, (u8 *) &mgmt, IEEE80211_HDRLEN +				sizeof(mgmt.u.deauth));}
开发者ID:DentonGentry,项目名称:gfiber-gfrg100,代码行数:16,


示例16: ieee802_11_send_deauth

void ieee802_11_send_deauth(hostapd *hapd, u8 *addr, u8 reason){	struct ieee80211_mgmt mgmt;	memset(&mgmt, 0, sizeof(mgmt));	mgmt.frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					  WLAN_FC_STYPE_DEAUTH);	memcpy(mgmt.da, addr, ETH_ALEN);	memcpy(mgmt.sa, hapd->own_addr, ETH_ALEN);	memcpy(mgmt.bssid, hapd->own_addr, ETH_ALEN);	mgmt.u.deauth.reason_code = host_to_le16(reason);	if (hapd->driver.send_mgmt_frame &&	    hapd->driver.send_mgmt_frame(hapd->driver.data, &mgmt,					 IEEE80211_HDRLEN +					 sizeof(mgmt.u.deauth), 0) < 0)		perror("ieee802_11_send_deauth: send");}
开发者ID:OPSF,项目名称:uClinux,代码行数:17,


示例17: CW80211AssembleIEFrameControlData

CWBool CW80211AssembleIEFrameControlData(char * frame, int * offset, int frameType, int frameSubtype, int toDS, int fromDS) {			short int val = IEEE80211_FC(frameType, frameSubtype);	if(toDS == 1)		SETBIT(val,8);	else		CLEARBIT(val,8);			if(fromDS == 1)		SETBIT(val,9);	else		CLEARBIT(val,9);	CW_COPY_MEMORY(frame, &(val), LEN_IE_FRAME_CONTROL);	(*offset) += LEN_IE_FRAME_CONTROL;		return CW_TRUE;}
开发者ID:BeanGu,项目名称:openCAPWAP,代码行数:18,


示例18: build_mgmt_hdr

static void build_mgmt_hdr(struct ieee80211_mgmt *mgmt,			   struct wlantest_bss *bss, struct wlantest_sta *sta,			   int sender_ap, int stype){	os_memset(mgmt, 0, 24);	mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, stype);	if (sender_ap) {		if (sta)			os_memcpy(mgmt->da, sta->addr, ETH_ALEN);		else			os_memset(mgmt->da, 0xff, ETH_ALEN);		os_memcpy(mgmt->sa, bss->bssid, ETH_ALEN);	} else {		os_memcpy(mgmt->da, bss->bssid, ETH_ALEN);		os_memcpy(mgmt->sa, sta->addr, ETH_ALEN);	}	os_memcpy(mgmt->bssid, bss->bssid, ETH_ALEN);}
开发者ID:cozybit,项目名称:hostap-sae,代码行数:18,


示例19: ieee802_11_sta_associate

static void ieee802_11_sta_associate(void *eloop_ctx, void *timeout_ctx){	hostapd *hapd = eloop_ctx;	u8 buf[256];	struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *) buf;	u8 *p;	if (hapd->assoc_ap_state == AUTHENTICATE)		hapd->assoc_ap_state = ASSOCIATE;	if (hapd->assoc_ap_state != ASSOCIATE)		return;	printf("Associate with AP " MACSTR " SSID=",	       MAC2STR(hapd->conf->assoc_ap_addr));	ieee802_11_print_ssid(hapd->assoc_ap_ssid, hapd->assoc_ap_ssid_len);	printf(" (as station)/n");	memset(mgmt, 0, sizeof(*mgmt));	mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					  WLAN_FC_STYPE_ASSOC_REQ);	/* Request TX callback */	mgmt->frame_control |= host_to_le16(BIT(1));	memcpy(mgmt->da, hapd->conf->assoc_ap_addr, ETH_ALEN);	memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN);	memcpy(mgmt->bssid, hapd->conf->assoc_ap_addr, ETH_ALEN);	mgmt->u.assoc_req.capab_info = host_to_le16(0);	mgmt->u.assoc_req.listen_interval = host_to_le16(1);	p = &mgmt->u.assoc_req.variable[0];	*p++ = WLAN_EID_SSID;	*p++ = hapd->assoc_ap_ssid_len;	memcpy(p, hapd->assoc_ap_ssid, hapd->assoc_ap_ssid_len);	p += hapd->assoc_ap_ssid_len;	p = hostapd_eid_supp_rates(hapd, p);	if (hapd->driver.send_mgmt_frame &&	    hapd->driver.send_mgmt_frame(hapd->driver.send_mgmt_frame,					 mgmt, p - (u8 *) mgmt, 0) < 0)		perror("ieee802_11_sta_associate: send");	/* Try to authenticate again, if this attempt fails or times out. */	eloop_register_timeout(5, 0, ieee802_11_sta_associate, hapd, NULL);}
开发者ID:OPSF,项目名称:uClinux,代码行数:44,


示例20: send_auth_reply

static void send_auth_reply(hostapd *hapd, struct ieee80211_mgmt *mgmt,			    u16 auth_alg, u16 auth_transaction, u16 resp,			    u8 *challenge){	u8 buf[IEEE80211_HDRLEN + sizeof(mgmt->u.auth) + 2 +	       WLAN_AUTH_CHALLENGE_LEN];	struct ieee80211_mgmt *reply;	size_t rlen;	memset(buf, 0, sizeof(buf));	reply = (struct ieee80211_mgmt *) buf;	reply->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					   WLAN_FC_STYPE_AUTH);	/* Request TX callback */	reply->frame_control |= host_to_le16(BIT(1));	memcpy(reply->da, mgmt->sa, ETH_ALEN);	memcpy(reply->sa, hapd->own_addr, ETH_ALEN);	memcpy(reply->bssid, mgmt->bssid, ETH_ALEN);	reply->u.auth.auth_alg = host_to_le16(auth_alg);	reply->u.auth.auth_transaction = host_to_le16(auth_transaction);	reply->u.auth.status_code = host_to_le16(resp);	rlen = IEEE80211_HDRLEN + sizeof(reply->u.auth);	if (auth_alg == WLAN_AUTH_SHARED_KEY && auth_transaction == 2 &&	    challenge) {		u8 *p = reply->u.auth.variable;		*p++ = WLAN_EID_CHALLENGE;		*p++ = WLAN_AUTH_CHALLENGE_LEN;		memcpy(p, challenge, WLAN_AUTH_CHALLENGE_LEN);		rlen += 2 + WLAN_AUTH_CHALLENGE_LEN;	} else		challenge = NULL;	HOSTAPD_DEBUG(HOSTAPD_DEBUG_MINIMAL,		      "authentication reply: STA=" MACSTR " auth_alg=%d "		      "auth_transaction=%d resp=%d%s/n",		      MAC2STR(mgmt->sa), auth_alg, auth_transaction,		      resp, challenge ? " challenge" : "");	if (hapd->driver.send_mgmt_frame &&	    hapd->driver.send_mgmt_frame(hapd->driver.data, reply,					 rlen, 0) < 0)		perror("send_auth_reply: send");}
开发者ID:OPSF,项目名称:uClinux,代码行数:43,


示例21: send_deauth

static void send_deauth(struct hostapd_data *hapd, const u8 *addr,			u16 reason_code){	int send_len;	struct ieee80211_mgmt reply;	os_memset(&reply, 0, sizeof(reply));	reply.frame_control =		IEEE80211_FC(WLAN_FC_TYPE_MGMT, WLAN_FC_STYPE_DEAUTH);	os_memcpy(reply.da, addr, ETH_ALEN);	os_memcpy(reply.sa, hapd->own_addr, ETH_ALEN);	os_memcpy(reply.bssid, hapd->own_addr, ETH_ALEN);	send_len = IEEE80211_HDRLEN + sizeof(reply.u.deauth);	reply.u.deauth.reason_code = host_to_le16(reason_code);	if (hapd->drv.send_mgmt_frame(hapd, &reply, send_len) < 0)		wpa_printf(MSG_INFO, "Failed to send deauth: %s",			   strerror(errno));}
开发者ID:progloverfan,项目名称:mod-hostapd,代码行数:20,


示例22: mesh_path_error_tx

/** * mesh_send_path error - Sends a PERR mesh management frame * * @dst: broken destination * @dst_dsn: dsn of the broken destination * @ra: node this frame is addressed to */int mesh_path_error_tx(u8 *dst, __le32 dst_dsn, u8 *ra,		struct net_device *dev){	struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);	struct sk_buff *skb = dev_alloc_skb(local->hw.extra_tx_headroom + 400);	struct ieee80211_mgmt *mgmt;	u8 *pos;	int ie_len;	if (!skb)		return -1;	skb_reserve(skb, local->hw.extra_tx_headroom);	/* 25 is the size of the common mgmt part (24) plus the size of the	 * common action part (1)	 */	mgmt = (struct ieee80211_mgmt *)		skb_put(skb, 25 + sizeof(mgmt->u.action.u.mesh_action));	memset(mgmt, 0, 25 + sizeof(mgmt->u.action.u.mesh_action));	mgmt->frame_control = IEEE80211_FC(IEEE80211_FTYPE_MGMT,					   IEEE80211_STYPE_ACTION);	memcpy(mgmt->da, ra, ETH_ALEN);	memcpy(mgmt->sa, dev->dev_addr, ETH_ALEN);	/* BSSID is left zeroed, wildcard value */	mgmt->u.action.category = MESH_PATH_SEL_CATEGORY;	mgmt->u.action.u.mesh_action.action_code = MPATH_PERR;	ie_len = 12;	pos = skb_put(skb, 2 + ie_len);	*pos++ = WLAN_EID_PERR;	*pos++ = ie_len;	/* mode flags, reserved */	*pos++ = 0;	/* number of destinations */	*pos++ = 1;	memcpy(pos, dst, ETH_ALEN);	pos += ETH_ALEN;	memcpy(pos, &dst_dsn, 4);	ieee80211_sta_tx(dev, skb, 0);	return 0;}
开发者ID:DINKIN,项目名称:tuo,代码行数:48,


示例23: rtl871x_sta_deauth_ops

static int rtl871x_sta_deauth_ops(void *priv, const u8 *own_addr, const u8 *addr,		   int reason){	struct rtl871x_driver_data *drv = priv;	struct ieee80211_mgmt mgmt;	printf("+%s, " MACSTR " is deauth, reason=%d/n", __func__, MAC2STR(addr), reason);	memset(&mgmt, 0, sizeof(mgmt));	mgmt.frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					  WLAN_FC_STYPE_DEAUTH);		memcpy(mgmt.da, addr, ETH_ALEN);	memcpy(mgmt.sa, own_addr, ETH_ALEN);	memcpy(mgmt.bssid, own_addr, ETH_ALEN);	mgmt.u.deauth.reason_code = host_to_le16(reason);	return rtl871x_send_mgmt_frame_ops(drv, &mgmt, IEEE80211_HDRLEN +				      sizeof(mgmt.u.deauth), 0);	}
开发者ID:robertalks,项目名称:hostap,代码行数:21,


示例24: from_8023_to_80211

int from_8023_to_80211(unsigned char *inbuffer, int inlen, unsigned char *outbuffer, unsigned char *own_addr){	int indx = 0;	struct ieee80211_hdr hdr;	os_memset(&hdr, 0, sizeof(struct ieee80211_hdr));	hdr.frame_control = IEEE80211_FC(WLAN_FC_TYPE_DATA, WLAN_FC_STYPE_DATA) | host_to_le16(WLAN_FC_FROMDS);	hdr.duration_id = 0;	hdr.seq_ctrl = 0;	os_memcpy(hdr.addr1, inbuffer, ETH_ALEN);	os_memcpy(hdr.addr2, own_addr, ETH_ALEN);	os_memcpy(hdr.addr3, inbuffer + ETH_ALEN, ETH_ALEN);	os_memcpy(outbuffer + indx, &hdr, sizeof(hdr));	indx += sizeof(hdr);	os_memcpy(outbuffer + indx, inbuffer, inlen);	indx += inlen;	return indx;}
开发者ID:BeanGu,项目名称:openCAPWAP-OpenWRT,代码行数:22,


示例25: hostapd_sa_query_request

static void hostapd_sa_query_request(struct hostapd_data *hapd,				     const struct ieee80211_mgmt *mgmt){	struct sta_info *sta;	struct ieee80211_mgmt resp;	u8 *end;	wpa_printf(MSG_DEBUG, "IEEE 802.11: Received SA Query Request from "		   MACSTR, MAC2STR(mgmt->sa));	wpa_hexdump(MSG_DEBUG, "IEEE 802.11: SA Query Transaction ID",		    mgmt->u.action.u.sa_query_resp.trans_id,		    WLAN_SA_QUERY_TR_ID_LEN);	sta = ap_get_sta(hapd, mgmt->sa);	if (sta == NULL || !(sta->flags & WLAN_STA_ASSOC)) {		wpa_printf(MSG_DEBUG, "IEEE 802.11: Ignore SA Query Request "			   "from unassociated STA " MACSTR, MAC2STR(mgmt->sa));		return;	}	wpa_printf(MSG_DEBUG, "IEEE 802.11: Sending SA Query Response to "		   MACSTR, MAC2STR(mgmt->sa));	os_memset(&resp, 0, sizeof(resp));	resp.frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,					  WLAN_FC_STYPE_ACTION);	os_memcpy(resp.da, mgmt->sa, ETH_ALEN);	os_memcpy(resp.sa, hapd->own_addr, ETH_ALEN);	os_memcpy(resp.bssid, hapd->own_addr, ETH_ALEN);	resp.u.action.category = WLAN_ACTION_SA_QUERY;	resp.u.action.u.sa_query_req.action = WLAN_SA_QUERY_RESPONSE;	os_memcpy(resp.u.action.u.sa_query_req.trans_id,		  mgmt->u.action.u.sa_query_req.trans_id,		  WLAN_SA_QUERY_TR_ID_LEN);	end = resp.u.action.u.sa_query_req.trans_id + WLAN_SA_QUERY_TR_ID_LEN;	if (hapd->drv.send_mgmt_frame(hapd, &resp, end - (u8 *) &resp) < 0)		perror("hostapd_sa_query_request: send");}
开发者ID:progloverfan,项目名称:mod-hostapd,代码行数:38,


示例26: hostapd_rx_action

static void hostapd_rx_action(struct hostapd_data *hapd,                              struct rx_action *rx_action){    struct rx_mgmt rx_mgmt;    u8 *buf;    struct ieee80211_hdr *hdr;    wpa_printf(MSG_DEBUG, "EVENT_RX_ACTION DA=" MACSTR " SA=" MACSTR               " BSSID=" MACSTR " category=%u",               MAC2STR(rx_action->da), MAC2STR(rx_action->sa),               MAC2STR(rx_action->bssid), rx_action->category);    wpa_hexdump(MSG_MSGDUMP, "Received action frame contents",                rx_action->data, rx_action->len);    buf = os_zalloc(24 + 1 + rx_action->len);    if (buf == NULL)        return;    hdr = (struct ieee80211_hdr *) buf;    hdr->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT,                                      WLAN_FC_STYPE_ACTION);    if (rx_action->category == WLAN_ACTION_SA_QUERY) {        /*         * Assume frame was protected; it would have been dropped if         * not.         */        hdr->frame_control |= host_to_le16(WLAN_FC_ISWEP);    }    os_memcpy(hdr->addr1, rx_action->da, ETH_ALEN);    os_memcpy(hdr->addr2, rx_action->sa, ETH_ALEN);    os_memcpy(hdr->addr3, rx_action->bssid, ETH_ALEN);    buf[24] = rx_action->category;    os_memcpy(buf + 24 + 1, rx_action->data, rx_action->len);    os_memset(&rx_mgmt, 0, sizeof(rx_mgmt));    rx_mgmt.frame = buf;    rx_mgmt.frame_len = 24 + 1 + rx_action->len;    hostapd_mgmt_rx(hapd, &rx_mgmt);    os_free(buf);}
开发者ID:Nomad280279,项目名称:vendor_intel_hardware_wlan_hostap_wcs,代码行数:38,



注:本文中的IEEE80211_FC函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ IEEE80211_IS_CHAN_2GHZ函数代码示例
C++ IEEE80211_ADDR_COPY函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。