Closed naddika closed 10 months ago
Can it tweaked such that it'll only allow discovering a certain list of WiFi networks?
Currently, vwifi doesn't have the ability to filter out other wireless interfaces. But it's feasible to do this in vwifi with little modifications. For configuration, we need to figure out some other ways since static configuration seems not possible for a kernel module. Maybe we can write a simple user program for this, and communicate with vwifi via Netlink.
Also, what does it mean "virtual" Wifi driver?
It means vwifi doesn't work with a real wireless network card, and vwifi itself behaves like both a cfg80211 driver and a cfg80211 hardware.
Currently, vwifi doesn't have the ability to filter out other wireless interfaces.
I didn't it say that had it. I said if "it could be" tweaked accordingly -- by myself
I didn't ask about interfaces, I did about networks.
Also, I asked, where was that place in the code, so I could rewrite it? @rickywu0421
I didn't it say that had it. I said if "it could be" tweaked accordingly -- by myself
I didn't ask about interfaces, I did about networks.
I apologize for my misunderstanding.
Also, I asked, where was that place in the code, so I could rewrite it? @rickywu0421
The code is in the owl_ndo_start_xmit()
function (line 599), and you can filter out packet here:
/* TX by interface of AP mode */
else if (vif->wdev.iftype == NL80211_IFTYPE_AP) {
/* Check if the packet is broadcasting */
if (is_broadcast_ether_addr(eth_hdr->h_dest)) {
list_for_each_entry (dest_vif, &vif->bss_list, bss_list) {
/* Don't send broadcast packet back to the source interface.
*/
if (ether_addr_equal(eth_hdr->h_source,
dest_vif->ndev->dev_addr))
continue;
if (__owl_ndo_start_xmit(vif, dest_vif, skb))
count++;
}
}
/* The packet is unicasting */
else {
list_for_each_entry (dest_vif, &vif->bss_list, bss_list) {
if (ether_addr_equal(eth_hdr->h_dest,
dest_vif->ndev->dev_addr)) {
if (__owl_ndo_start_xmit(vif, dest_vif, skb))
count++;
break;
}
}
}
}
Can it tweaked such that it'll only allow discovering a certain list of WiFi networks? That is, the user (admin) upon installation will provide a list of whitelisted networks via config or somehow statically. When the driver runs, it'll only show those to the client application ignoring all the rest.
If so, where's the place for this in the code?
Also, what does it mean "virtual" Wifi driver?