• Home
  • Raw
  • Download

Lines Matching refs:drv

84 	struct bsd_driver_data *drv;  in bsd_get_drvindex()  local
86 dl_list_for_each(drv, &global->ifaces, struct bsd_driver_data, list) { in bsd_get_drvindex()
87 if (drv->ifindex == ifindex) in bsd_get_drvindex()
88 return drv; in bsd_get_drvindex()
98 struct bsd_driver_data *drv; in bsd_get_drvname() local
100 dl_list_for_each(drv, &global->ifaces, struct bsd_driver_data, list) { in bsd_get_drvname()
101 if (os_strcmp(drv->ifname, ifname) == 0) in bsd_get_drvname()
102 return drv; in bsd_get_drvname()
111 struct bsd_driver_data *drv = priv; in bsd_set80211() local
114 if (drv->ifindex == 0 || drv->if_removed) in bsd_set80211()
118 os_strlcpy(ireq.i_name, drv->ifname, sizeof(ireq.i_name)); in bsd_set80211()
124 if (ioctl(drv->global->sock, SIOCS80211, &ireq) < 0) { in bsd_set80211()
137 struct bsd_driver_data *drv = priv; in bsd_get80211() local
140 os_strlcpy(ireq->i_name, drv->ifname, sizeof(ireq->i_name)); in bsd_get80211()
145 if (ioctl(drv->global->sock, SIOCG80211, ireq) < 0) { in bsd_get80211()
154 get80211var(struct bsd_driver_data *drv, int op, void *arg, int arg_len) in get80211var() argument
158 if (bsd_get80211(drv, &ireq, op, arg, arg_len) < 0) in get80211var()
164 set80211var(struct bsd_driver_data *drv, int op, const void *arg, int arg_len) in set80211var() argument
166 return bsd_set80211(drv, op, 0, arg, arg_len); in set80211var()
170 set80211param(struct bsd_driver_data *drv, int op, int arg) in set80211param() argument
172 return bsd_set80211(drv, op, arg, NULL, 0); in set80211param()
178 struct bsd_driver_data *drv = priv; in bsd_get_ssid() local
184 os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name)); in bsd_get_ssid()
186 if (ioctl(drv->global->sock, SIOCG80211NWID, &ifr) < 0 || in bsd_get_ssid()
192 return get80211var(drv, IEEE80211_IOC_SSID, ssid, IEEE80211_NWID_LEN); in bsd_get_ssid()
199 struct bsd_driver_data *drv = priv; in bsd_set_ssid() local
207 os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name)); in bsd_set_ssid()
209 return ioctl(drv->global->sock, SIOCS80211NWID, &ifr); in bsd_set_ssid()
211 return set80211var(drv, IEEE80211_IOC_SSID, ssid, ssid_len); in bsd_set_ssid()
218 struct bsd_driver_data *drv = priv; in bsd_get_if_media() local
222 os_strlcpy(ifmr.ifm_name, drv->ifname, sizeof(ifmr.ifm_name)); in bsd_get_if_media()
224 if (ioctl(drv->global->sock, SIOCGIFMEDIA, &ifmr) < 0) { in bsd_get_if_media()
236 struct bsd_driver_data *drv = priv; in bsd_set_if_media() local
240 os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name)); in bsd_set_if_media()
243 if (ioctl(drv->global->sock, SIOCSIFMEDIA, &ifr) < 0) { in bsd_set_if_media()
300 struct bsd_driver_data *drv = priv; in bsd_ctrl_iface() local
304 os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name)); in bsd_ctrl_iface()
306 if (ioctl(drv->global->sock, SIOCGIFFLAGS, &ifr) < 0) { in bsd_ctrl_iface()
311 drv->flags = ifr.ifr_flags; in bsd_ctrl_iface()
323 if (ioctl(drv->global->sock, SIOCSIFFLAGS, &ifr) < 0) { in bsd_ctrl_iface()
329 drv->flags = ifr.ifr_flags; in bsd_ctrl_iface()
340 struct bsd_driver_data *drv = priv; in bsd_set_key() local
401 if (drv->opmode == IEEE80211_M_IBSS || in bsd_set_key()
402 drv->opmode == IEEE80211_M_AHDEMO) in bsd_set_key()
578 struct bsd_driver_data *drv = priv; in bsd_send_eapol() local
582 return l2_packet_send(drv->sock_xmit, addr, ETH_P_EAPOL, data, in bsd_send_eapol()
589 struct bsd_driver_data *drv = priv; in bsd_set_freq() local
611 if (bsd_set_mediaopt(drv, IFM_MMASK, mode) < 0) { in bsd_set_freq()
619 os_strlcpy(creq.i_name, drv->ifname, sizeof(creq.i_name)); in bsd_set_freq()
621 return ioctl(drv->global->sock, SIOCS80211CHANNEL, &creq); in bsd_set_freq()
776 struct bsd_driver_data *drv; in bsd_wireless_event_receive() local
802 drv = bsd_get_drvindex(global, ifan->ifan_index); in bsd_wireless_event_receive()
803 if (drv == NULL) in bsd_wireless_event_receive()
813 drv_event_disassoc(drv->hapd, leave->iev_addr); in bsd_wireless_event_receive()
820 bsd_new_sta(drv, drv->hapd, join->iev_addr); in bsd_wireless_event_receive()
834 wpa_supplicant_event(drv->hapd, in bsd_wireless_event_receive()
845 struct bsd_driver_data *drv = ctx; in handle_read() local
846 drv_event_eapol_rx(drv->hapd, src_addr, buf, len); in handle_read()
852 struct bsd_driver_data *drv; in bsd_init() local
854 drv = os_zalloc(sizeof(struct bsd_driver_data)); in bsd_init()
855 if (drv == NULL) { in bsd_init()
860 drv->ifindex = if_nametoindex(params->ifname); in bsd_init()
861 if (drv->ifindex == 0) { in bsd_init()
867 drv->hapd = hapd; in bsd_init()
868 drv->global = params->global_priv; in bsd_init()
869 os_strlcpy(drv->ifname, params->ifname, sizeof(drv->ifname)); in bsd_init()
871 drv->sock_xmit = l2_packet_init(drv->ifname, NULL, ETH_P_EAPOL, in bsd_init()
872 handle_read, drv, 0); in bsd_init()
873 if (drv->sock_xmit == NULL) in bsd_init()
875 if (l2_packet_get_own_addr(drv->sock_xmit, params->own_addr)) in bsd_init()
879 if (bsd_ctrl_iface(drv, 0) < 0) in bsd_init()
882 if (bsd_set_mediaopt(drv, IFM_OMASK, IFM_IEEE80211_HOSTAP) < 0) { in bsd_init()
888 dl_list_add(&drv->global->ifaces, &drv->list); in bsd_init()
890 return drv; in bsd_init()
892 if (drv->sock_xmit != NULL) in bsd_init()
893 l2_packet_deinit(drv->sock_xmit); in bsd_init()
894 os_free(drv); in bsd_init()
902 struct bsd_driver_data *drv = priv; in bsd_deinit() local
904 if (drv->ifindex != 0) in bsd_deinit()
905 bsd_ctrl_iface(drv, 0); in bsd_deinit()
906 if (drv->sock_xmit != NULL) in bsd_deinit()
907 l2_packet_deinit(drv->sock_xmit); in bsd_deinit()
908 os_free(drv); in bsd_deinit()
942 get80211param(struct bsd_driver_data *drv, int op) in get80211param() argument
946 if (bsd_get80211(drv, &ireq, op, NULL, 0) < 0) in get80211param()
954 struct bsd_driver_data *drv = priv; in wpa_driver_bsd_get_bssid() local
958 os_strlcpy(bs.i_name, drv->ifname, sizeof(bs.i_name)); in wpa_driver_bsd_get_bssid()
959 if (ioctl(drv->global->sock, SIOCG80211BSSID, &bs) < 0) in wpa_driver_bsd_get_bssid()
964 return get80211var(drv, IEEE80211_IOC_BSSID, in wpa_driver_bsd_get_bssid()
972 struct bsd_driver_data *drv = priv; in wpa_driver_bsd_get_ssid() local
973 return bsd_get_ssid(drv, ssid, 0); in wpa_driver_bsd_get_ssid()
977 wpa_driver_bsd_set_wpa_ie(struct bsd_driver_data *drv, const u8 *wpa_ie, in wpa_driver_bsd_set_wpa_ie() argument
981 return bsd_set_opt_ie(drv, wpa_ie, wpa_ie_len); in wpa_driver_bsd_set_wpa_ie()
983 return set80211var(drv, IEEE80211_IOC_OPTIE, wpa_ie, wpa_ie_len); in wpa_driver_bsd_set_wpa_ie()
1054 struct bsd_driver_data *drv = ctx; in handle_read() local
1056 drv_event_eapol_rx(drv->ctx, src_addr, buf, len); in handle_read()
1062 struct bsd_driver_data *drv = priv; in wpa_driver_bsd_associate() local
1092 if (bsd_set_mediaopt(drv, IFM_OMASK, mode) < 0) { in wpa_driver_bsd_associate()
1099 drv->sock_xmit = l2_packet_init(drv->ifname, NULL, ETH_P_EAPOL, in wpa_driver_bsd_associate()
1100 handle_read, drv, 0); in wpa_driver_bsd_associate()
1101 if (drv->sock_xmit == NULL) in wpa_driver_bsd_associate()
1103 drv->is_ap = 1; in wpa_driver_bsd_associate()
1107 if (wpa_driver_bsd_set_drop_unencrypted(drv, params->drop_unencrypted) in wpa_driver_bsd_associate()
1110 if (wpa_driver_bsd_set_auth_alg(drv, params->auth_alg) < 0) in wpa_driver_bsd_associate()
1113 if (wpa_driver_bsd_set_wpa_ie(drv, params->wpa_ie, params->wpa_ie_len) < 0) in wpa_driver_bsd_associate()
1122 if (set80211param(drv, IEEE80211_IOC_PRIVACY, privacy) < 0) in wpa_driver_bsd_associate()
1126 set80211param(drv, IEEE80211_IOC_WPA, in wpa_driver_bsd_associate()
1137 if (set80211var(drv, IEEE80211_IOC_MLME, &mlme, sizeof(mlme)) < 0) in wpa_driver_bsd_associate()
1145 struct bsd_driver_data *drv = priv; in wpa_driver_bsd_scan() local
1151 if (bsd_set_mediaopt(drv, IFM_OMASK, 0 /* STA */) < 0) { in wpa_driver_bsd_scan()
1157 if (set80211param(drv, IEEE80211_IOC_ROAMING, in wpa_driver_bsd_scan()
1165 if (wpa_driver_bsd_set_wpa(drv, 1) < 0) { in wpa_driver_bsd_scan()
1172 if (bsd_ctrl_iface(drv, 1) < 0) in wpa_driver_bsd_scan()
1198 return set80211var(drv, IEEE80211_IOC_SCAN_REQ, &sr, sizeof(sr)); in wpa_driver_bsd_scan()
1201 if (bsd_set_ssid(drv, params->ssids[0].ssid, in wpa_driver_bsd_scan()
1206 return set80211param(drv, IEEE80211_IOC_SCAN_REQ, 0); in wpa_driver_bsd_scan()
1214 struct bsd_driver_data *drv; in wpa_driver_bsd_event_receive() local
1244 drv = bsd_get_drvindex(global, ifan->ifan_index); in wpa_driver_bsd_event_receive()
1245 if (drv) in wpa_driver_bsd_event_receive()
1246 drv->if_removed = 1; in wpa_driver_bsd_event_receive()
1250 drv = bsd_get_drvname(global, ifan->ifan_name); in wpa_driver_bsd_event_receive()
1251 if (drv) { in wpa_driver_bsd_event_receive()
1252 drv->ifindex = ifan->ifan_index; in wpa_driver_bsd_event_receive()
1253 drv->if_removed = 0; in wpa_driver_bsd_event_receive()
1267 if (drv) { in wpa_driver_bsd_event_receive()
1268 wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_STATUS, in wpa_driver_bsd_event_receive()
1275 drv->ifindex = 0; in wpa_driver_bsd_event_receive()
1284 drv = bsd_get_drvindex(global, ifan->ifan_index); in wpa_driver_bsd_event_receive()
1285 if (drv == NULL) in wpa_driver_bsd_event_receive()
1290 if (drv->is_ap) in wpa_driver_bsd_event_receive()
1292 wpa_supplicant_event(drv->ctx, EVENT_ASSOC, NULL); in wpa_driver_bsd_event_receive()
1295 if (drv->is_ap) in wpa_driver_bsd_event_receive()
1297 wpa_supplicant_event(drv->ctx, EVENT_DISASSOC, NULL); in wpa_driver_bsd_event_receive()
1300 if (drv->is_ap) in wpa_driver_bsd_event_receive()
1302 wpa_supplicant_event(drv->ctx, EVENT_SCAN_RESULTS, in wpa_driver_bsd_event_receive()
1307 drv_event_disassoc(drv->ctx, leave->iev_addr); in wpa_driver_bsd_event_receive()
1314 bsd_new_sta(drv, drv->ctx, join->iev_addr); in wpa_driver_bsd_event_receive()
1329 wpa_supplicant_event(drv->ctx, in wpa_driver_bsd_event_receive()
1336 drv = bsd_get_drvindex(global, ifm->ifm_index); in wpa_driver_bsd_event_receive()
1337 if (drv == NULL) in wpa_driver_bsd_event_receive()
1340 (drv->flags & IFF_UP) != 0) { in wpa_driver_bsd_event_receive()
1342 drv->ifname); in wpa_driver_bsd_event_receive()
1343 wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_DISABLED, in wpa_driver_bsd_event_receive()
1346 (drv->flags & IFF_UP) == 0) { in wpa_driver_bsd_event_receive()
1348 drv->ifname); in wpa_driver_bsd_event_receive()
1349 wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_ENABLED, in wpa_driver_bsd_event_receive()
1352 drv->flags = ifm->ifm_flags; in wpa_driver_bsd_event_receive()
1456 static int wpa_driver_bsd_capa(struct bsd_driver_data *drv) in wpa_driver_bsd_capa() argument
1471 if (get80211var(drv, IEEE80211_IOC_DEVCAPS, &devcaps, in wpa_driver_bsd_capa()
1482 drv->capa.key_mgmt = WPA_DRIVER_CAPA_KEY_MGMT_WPA | in wpa_driver_bsd_capa()
1485 drv->capa.key_mgmt = WPA_DRIVER_CAPA_KEY_MGMT_WPA2 | in wpa_driver_bsd_capa()
1489 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_WEP40 | in wpa_driver_bsd_capa()
1492 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_TKIP; in wpa_driver_bsd_capa()
1494 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_CCMP; in wpa_driver_bsd_capa()
1497 drv->capa.flags |= WPA_DRIVER_FLAGS_AP; in wpa_driver_bsd_capa()
1509 drv->capa.key_mgmt = WPA_DRIVER_CAPA_KEY_MGMT_WPA | in wpa_driver_bsd_capa()
1513 drv->capa.enc = WPA_DRIVER_CAPA_ENC_WEP40 | in wpa_driver_bsd_capa()
1517 drv->capa.flags |= WPA_DRIVER_FLAGS_AP; in wpa_driver_bsd_capa()
1520 drv->capa.max_scan_ssids = IEEE80211_IOC_SCAN_MAX_SSID; in wpa_driver_bsd_capa()
1522 drv->capa.max_scan_ssids = 1; in wpa_driver_bsd_capa()
1524 drv->capa.auth = WPA_DRIVER_AUTH_OPEN | in wpa_driver_bsd_capa()
1531 get80211opmode(struct bsd_driver_data *drv) in get80211opmode() argument
1536 (void) os_strlcpy(ifmr.ifm_name, drv->ifname, sizeof(ifmr.ifm_name)); in get80211opmode()
1538 if (ioctl(drv->global->sock, SIOCGIFMEDIA, (caddr_t)&ifmr) >= 0) { in get80211opmode()
1560 #define GETPARAM(drv, param, v) \ in wpa_driver_bsd_init() argument
1561 (((v) = get80211param(drv, param)) != -1) in wpa_driver_bsd_init()
1562 struct bsd_driver_data *drv; in wpa_driver_bsd_init() local
1564 drv = os_zalloc(sizeof(*drv)); in wpa_driver_bsd_init()
1565 if (drv == NULL) in wpa_driver_bsd_init()
1574 drv->ifindex = if_nametoindex(ifname); in wpa_driver_bsd_init()
1575 if (drv->ifindex == 0) { in wpa_driver_bsd_init()
1581 drv->ctx = ctx; in wpa_driver_bsd_init()
1582 drv->global = priv; in wpa_driver_bsd_init()
1583 os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname)); in wpa_driver_bsd_init()
1585 if (!GETPARAM(drv, IEEE80211_IOC_ROAMING, drv->prev_roaming)) { in wpa_driver_bsd_init()
1590 if (!GETPARAM(drv, IEEE80211_IOC_PRIVACY, drv->prev_privacy)) { in wpa_driver_bsd_init()
1595 if (!GETPARAM(drv, IEEE80211_IOC_WPA, drv->prev_wpa)) { in wpa_driver_bsd_init()
1601 if (wpa_driver_bsd_capa(drv)) in wpa_driver_bsd_init()
1605 if (bsd_ctrl_iface(drv, 0) < 0) in wpa_driver_bsd_init()
1608 drv->opmode = get80211opmode(drv); in wpa_driver_bsd_init()
1609 dl_list_add(&drv->global->ifaces, &drv->list); in wpa_driver_bsd_init()
1611 return drv; in wpa_driver_bsd_init()
1613 os_free(drv); in wpa_driver_bsd_init()
1621 struct bsd_driver_data *drv = priv; in wpa_driver_bsd_deinit() local
1623 if (drv->ifindex != 0 && !drv->if_removed) { in wpa_driver_bsd_deinit()
1624 wpa_driver_bsd_set_wpa(drv, 0); in wpa_driver_bsd_deinit()
1627 bsd_ctrl_iface(drv, 0); in wpa_driver_bsd_deinit()
1629 wpa_driver_bsd_set_wpa_internal(drv, drv->prev_wpa, in wpa_driver_bsd_deinit()
1630 drv->prev_privacy); in wpa_driver_bsd_deinit()
1632 if (set80211param(drv, IEEE80211_IOC_ROAMING, drv->prev_roaming) in wpa_driver_bsd_deinit()
1639 if (drv->sock_xmit != NULL) in wpa_driver_bsd_deinit()
1640 l2_packet_deinit(drv->sock_xmit); in wpa_driver_bsd_deinit()
1641 dl_list_del(&drv->list); in wpa_driver_bsd_deinit()
1642 os_free(drv); in wpa_driver_bsd_deinit()
1648 struct bsd_driver_data *drv = priv; in wpa_driver_bsd_get_capa() local
1650 os_memcpy(capa, &drv->capa, sizeof(*capa)); in wpa_driver_bsd_get_capa()