Lines Matching refs:drv

102 set80211priv(struct madwifi_driver_data *drv, int op, void *data, int len)
108 os_strlcpy(iwr.ifr_name, drv->iface, IFNAMSIZ);
131 if (ioctl(drv->ioctl_sock, op, &iwr) < 0) {
204 set80211param(struct madwifi_driver_data *drv, int op, int arg)
209 os_strlcpy(iwr.ifr_name, drv->iface, IFNAMSIZ);
213 if (ioctl(drv->ioctl_sock, IEEE80211_IOCTL_SETPARAM, &iwr) < 0) {
240 madwifi_configure_wpa(struct madwifi_driver_data *drv,
267 if (set80211param(drv, IEEE80211_PARAM_MCASTCIPHER, v)) {
274 if (set80211param(drv, IEEE80211_PARAM_MCASTKEYLEN, v)) {
288 if (set80211param(drv, IEEE80211_PARAM_UCASTCIPHERS, v)) {
295 if (set80211param(drv, IEEE80211_PARAM_KEYMGTALGS,
307 if (set80211param(drv, IEEE80211_PARAM_RSNCAPS, v)) {
313 if (set80211param(drv, IEEE80211_PARAM_WPA, params->wpa)) {
323 struct madwifi_driver_data *drv = priv;
333 hostapd_logger(drv->hapd, NULL, HOSTAPD_MODULE_DRIVER,
337 if (params->wpa && madwifi_configure_wpa(drv, params) != 0) {
338 hostapd_logger(drv->hapd, NULL, HOSTAPD_MODULE_DRIVER,
344 hostapd_logger(drv->hapd, NULL, HOSTAPD_MODULE_DRIVER,
355 struct madwifi_driver_data *drv = priv;
359 return set80211param(drv, IEEE80211_PARAM_PRIVACY, enabled);
365 struct madwifi_driver_data *drv = priv;
378 ret = set80211priv(drv, IEEE80211_IOCTL_SETMLME, &mlme, sizeof(mlme));
402 struct madwifi_driver_data *drv = priv;
417 ret = set80211priv(drv, IEEE80211_IOCTL_DELKEY, &wk, sizeof(wk));
433 struct madwifi_driver_data *drv = priv;
439 return madwifi_del_key(drv, addr, key_idx);
476 ret = set80211priv(drv, IEEE80211_IOCTL_SETKEY, &wk, sizeof(wk));
492 struct madwifi_driver_data *drv = priv;
505 if (set80211priv(drv, IEEE80211_IOCTL_GETKEY, &wk, sizeof(wk))) {
550 struct madwifi_driver_data *drv = priv;
562 if (set80211priv(drv,
571 if (memcmp(addr, drv->acct_mac, ETH_ALEN) == 0) {
572 memcpy(data, &drv->acct_data, sizeof(*data));
594 drv->iface, MAC2STR(addr));
598 if (memcmp(addr, drv->acct_mac, ETH_ALEN) != 0)
600 memcpy(data, &drv->acct_data, sizeof(*data));
634 struct madwifi_driver_data *drv = priv;
642 ret = set80211priv(drv, IEEE80211_IOCTL_SETMLME, &mlme,
670 struct madwifi_driver_data *drv = priv;
680 ret = set80211priv(drv, IEEE80211_IOCTL_SETMLME, &mlme, sizeof(mlme));
694 struct madwifi_driver_data *drv = priv;
704 ret = set80211priv(drv, IEEE80211_IOCTL_SETMLME, &mlme, sizeof(mlme));
719 struct madwifi_driver_data *drv = ctx;
740 wpa_supplicant_event(drv->hapd, EVENT_RX_PROBE_REQ, &event);
745 static int madwifi_receive_probe_req(struct madwifi_driver_data *drv)
755 ret = set80211priv(drv, IEEE80211_IOCTL_FILTERFRAME, &filt,
760 drv->sock_raw = l2_packet_init(drv->iface, NULL, ETH_P_80211_RAW,
761 madwifi_raw_receive, drv, 1);
762 if (drv->sock_raw == NULL)
773 struct madwifi_driver_data *drv = priv;
785 return set80211priv(drv, IEEE80211_IOCTL_SET_APPIEBUF, beac_ie,
808 madwifi_new_sta(struct madwifi_driver_data *drv, u8 addr[IEEE80211_ADDR_LEN])
810 struct hostapd_data *hapd = drv->hapd;
820 if (set80211priv(drv, IEEE80211_IOCTL_GETWPAIE, &ie, sizeof(ie))) {
853 if (memcmp(addr, drv->acct_mac, ETH_ALEN) == 0) {
855 memset(drv->acct_mac, 0, ETH_ALEN);
856 memset(&drv->acct_data, 0, sizeof(drv->acct_data));
861 madwifi_wireless_event_wireless_custom(struct madwifi_driver_data *drv,
882 wpa_supplicant_event(drv->hapd,
901 hwaddr_aton(value, drv->acct_mac);
903 drv->acct_data.rx_packets = val;
905 drv->acct_data.tx_packets = val;
907 drv->acct_data.rx_bytes = val;
909 drv->acct_data.tx_bytes = val;
916 madwifi_wireless_event_wireless(struct madwifi_driver_data *drv,
935 if (drv->we_version > 18 &&
950 drv_event_disassoc(drv->hapd,
954 madwifi_new_sta(drv, (u8 *) iwe->u.addr.sa_data);
964 madwifi_wireless_event_wireless_custom(drv, buf);
978 struct madwifi_driver_data *drv = ctx;
982 if (ifi->ifi_index != drv->ifindex)
992 drv, ((char *) attr) + rta_len,
1001 madwifi_get_we_version(struct madwifi_driver_data *drv)
1008 drv->we_version = 0;
1020 os_strlcpy(iwr.ifr_name, drv->iface, IFNAMSIZ);
1027 if (ioctl(drv->ioctl_sock, SIOCGIWRANGE, &iwr) < 0) {
1038 drv->we_version = range->we_version_compiled;
1047 madwifi_wireless_event_init(struct madwifi_driver_data *drv)
1051 madwifi_get_we_version(drv);
1056 cfg->ctx = drv;
1058 drv->netlink = netlink_init(cfg);
1059 if (drv->netlink == NULL) {
1072 struct madwifi_driver_data *drv = priv;
1102 status = l2_packet_send(drv->sock_xmit, addr, ETH_P_EAPOL, bp, len);
1112 struct madwifi_driver_data *drv = ctx;
1113 drv_event_eapol_rx(drv->hapd, src_addr, buf + sizeof(struct l2_ethhdr),
1120 struct madwifi_driver_data *drv;
1125 drv = os_zalloc(sizeof(struct madwifi_driver_data));
1126 if (drv == NULL) {
1131 drv->hapd = hapd;
1132 drv->ioctl_sock = socket(PF_INET, SOCK_DGRAM, 0);
1133 if (drv->ioctl_sock < 0) {
1137 memcpy(drv->iface, params->ifname, sizeof(drv->iface));
1140 os_strlcpy(ifr.ifr_name, drv->iface, sizeof(ifr.ifr_name));
1141 if (ioctl(drv->ioctl_sock, SIOCGIFINDEX, &ifr) != 0) {
1145 drv->ifindex = ifr.ifr_ifindex;
1147 drv->sock_xmit = l2_packet_init(drv->iface, NULL, ETH_P_EAPOL,
1148 handle_read, drv, 1);
1149 if (drv->sock_xmit == NULL)
1151 if (l2_packet_get_own_addr(drv->sock_xmit, params->own_addr))
1156 drv->sock_recv = l2_packet_init(params->bridge[0], NULL,
1157 ETH_P_EAPOL, handle_read, drv,
1159 if (drv->sock_recv == NULL)
1161 } else if (linux_br_get(brname, drv->iface) == 0) {
1164 drv->sock_recv = l2_packet_init(brname, NULL, ETH_P_EAPOL,
1165 handle_read, drv, 1);
1166 if (drv->sock_recv == NULL)
1169 drv->sock_recv = drv->sock_xmit;
1172 os_strlcpy(iwr.ifr_name, drv->iface, IFNAMSIZ);
1176 if (ioctl(drv->ioctl_sock, SIOCSIWMODE, &iwr) < 0) {
1183 linux_set_iface_flags(drv->ioctl_sock, drv->iface, 0);
1184 madwifi_set_privacy(drv, 0); /* default to no privacy */
1186 madwifi_receive_probe_req(drv);
1188 if (madwifi_wireless_event_init(drv))
1191 return drv;
1193 if (drv->sock_xmit != NULL)
1194 l2_packet_deinit(drv->sock_xmit);
1195 if (drv->ioctl_sock >= 0)
1196 close(drv->ioctl_sock);
1197 if (drv != NULL)
1198 free(drv);
1206 struct madwifi_driver_data *drv = priv;
1208 netlink_deinit(drv->netlink);
1209 (void) linux_set_iface_flags(drv->ioctl_sock, drv->iface, 0);
1210 if (drv->ioctl_sock >= 0)
1211 close(drv->ioctl_sock);
1212 if (drv->sock_recv != NULL && drv->sock_recv != drv->sock_xmit)
1213 l2_packet_deinit(drv->sock_recv);
1214 if (drv->sock_xmit != NULL)
1215 l2_packet_deinit(drv->sock_xmit);
1216 if (drv->sock_raw)
1217 l2_packet_deinit(drv->sock_raw);
1218 free(drv);
1224 struct madwifi_driver_data *drv = priv;
1228 os_strlcpy(iwr.ifr_name, drv->iface, IFNAMSIZ);
1233 if (ioctl(drv->ioctl_sock, SIOCSIWESSID, &iwr) < 0) {
1244 struct madwifi_driver_data *drv = priv;
1249 os_strlcpy(iwr.ifr_name, drv->iface, IFNAMSIZ);
1253 if (ioctl(drv->ioctl_sock, SIOCGIWESSID, &iwr) < 0) {
1265 struct madwifi_driver_data *drv = priv;
1267 return set80211param(drv, IEEE80211_PARAM_COUNTERMEASURES, enabled);
1273 struct madwifi_driver_data *drv = priv;
1274 return linux_set_iface_flags(drv->ioctl_sock, drv->iface, 1);
1292 set80211priv(struct wpa_driver_madwifi_data *drv, int op, void *data, int len,
1298 os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
1315 if (ioctl(drv->sock, op, &iwr) < 0) {
1388 set80211param(struct wpa_driver_madwifi_data *drv, int op, int arg,
1394 os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
1398 if (ioctl(drv->sock, IEEE80211_IOCTL_SETPARAM, &iwr) < 0) {
1407 wpa_driver_madwifi_set_wpa_ie(struct wpa_driver_madwifi_data *drv,
1413 os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
1418 if (ioctl(drv->sock, IEEE80211_IOCTL_SETOPTIE, &iwr) < 0) {
1426 wpa_driver_madwifi_del_key(struct wpa_driver_madwifi_data *drv, int key_idx,
1437 return set80211priv(drv, IEEE80211_IOCTL_DELKEY, &wk, sizeof(wk), 1);
1446 struct wpa_driver_madwifi_data *drv = priv;
1452 return wpa_driver_madwifi_del_key(drv, key_idx, addr);
1463 return wpa_driver_wext_set_key(ifname, drv->wext, alg,
1528 return set80211priv(drv, IEEE80211_IOCTL_SETKEY, &wk, sizeof(wk), 1);
1534 struct wpa_driver_madwifi_data *drv = priv;
1536 return set80211param(drv, IEEE80211_PARAM_COUNTERMEASURES, enabled, 1);
1542 struct wpa_driver_madwifi_data *drv = priv;
1549 return set80211priv(drv, IEEE80211_IOCTL_SETMLME, &mlme, sizeof(mlme), 1);
1555 struct wpa_driver_madwifi_data *drv = priv;
1562 return set80211priv(drv, IEEE80211_IOCTL_SETMLME, &mlme, sizeof(mlme), 1);
1569 struct wpa_driver_madwifi_data *drv = priv;
1575 if (set80211param(drv, IEEE80211_PARAM_DROPUNENCRYPTED,
1578 if (wpa_driver_madwifi_set_auth_alg(drv, params->auth_alg) < 0)
1589 if (wpa_driver_madwifi_set_wpa_ie(drv, params->wpa_ie,
1599 if (set80211param(drv, IEEE80211_PARAM_PRIVACY, privacy, 1) < 0)
1603 set80211param(drv, IEEE80211_PARAM_WPA,
1612 if (set80211param(drv, IEEE80211_PARAM_ROAMING, 0, 1) < 0)
1615 if (wpa_driver_wext_set_ssid(drv->wext, params->ssid,
1619 if (set80211param(drv, IEEE80211_PARAM_ROAMING, 2, 1) < 0)
1621 if (wpa_driver_wext_set_ssid(drv->wext, params->ssid,
1627 if (set80211priv(drv, IEEE80211_IOCTL_SETMLME, &mlme,
1641 struct wpa_driver_madwifi_data *drv = priv;
1652 return set80211param(drv, IEEE80211_PARAM_AUTHMODE, authmode, 1);
1658 struct wpa_driver_madwifi_data *drv = priv;
1664 wpa_driver_madwifi_set_probe_req_ie(drv, params->extra_ies,
1668 os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
1673 if (wpa_driver_wext_set_ssid(drv->wext, ssid, ssid_len) < 0)
1676 if (ioctl(drv->sock, SIOCSIWSCAN, &iwr) < 0) {
1688 eloop_cancel_timeout(wpa_driver_wext_scan_timeout, drv->wext,
1689 drv->ctx);
1690 eloop_register_timeout(30, 0, wpa_driver_wext_scan_timeout, drv->wext,
1691 drv->ctx);
1698 struct wpa_driver_madwifi_data *drv = priv;
1699 return wpa_driver_wext_get_bssid(drv->wext, bssid);
1705 struct wpa_driver_madwifi_data *drv = priv;
1706 return wpa_driver_wext_get_ssid(drv->wext, ssid);
1713 struct wpa_driver_madwifi_data *drv = priv;
1714 return wpa_driver_wext_get_scan_results(drv->wext);
1720 struct wpa_driver_madwifi_data *drv = priv;
1721 return wpa_driver_wext_set_operstate(drv->wext, state);
1751 struct wpa_driver_madwifi_data *drv;
1753 drv = os_zalloc(sizeof(*drv));
1754 if (drv == NULL)
1756 drv->wext = wpa_driver_wext_init(ctx, ifname);
1757 if (drv->wext == NULL)
1760 drv->ctx = ctx;
1761 os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
1762 drv->sock = socket(PF_INET, SOCK_DGRAM, 0);
1763 if (drv->sock < 0)
1766 if (set80211param(drv, IEEE80211_PARAM_ROAMING, 2, 1) < 0) {
1772 if (set80211param(drv, IEEE80211_PARAM_WPA, 3, 1) < 0) {
1778 return drv;
1781 close(drv->sock);
1783 wpa_driver_wext_deinit(drv->wext);
1785 os_free(drv);
1792 struct wpa_driver_madwifi_data *drv = priv;
1794 if (wpa_driver_madwifi_set_wpa_ie(drv, NULL, 0) < 0) {
1798 if (set80211param(drv, IEEE80211_PARAM_ROAMING, 0, 1) < 0) {
1802 if (set80211param(drv, IEEE80211_PARAM_PRIVACY, 0, 1) < 0) {
1806 if (set80211param(drv, IEEE80211_PARAM_WPA, 0, 1) < 0) {
1811 wpa_driver_wext_deinit(drv->wext);
1813 close(drv->sock);
1814 os_free(drv);