Waking up AWDL
Waking up AWDL
- Subject: Waking up AWDL
- From: Neil Alexander <email@hidden>
- Date: Fri, 22 Feb 2019 15:16:48 +0000
- Thread-topic: Waking up AWDL
Hi all,
I'm working on the macOS port of our end-to-end encrypted and peer-to-peer mesh
networking software written in Golang (see https://yggdrasil-network.github.io/
if that captures your curiosity). I am trying to take advantage of the AWDL
support in macOS so that we can make true device-to-device peerings without
depending on other existing networks (like infrastructure Wi-Fi networks).
Doing so has the potential to form/extend meshes in pretty much any location -
quite exciting.
It all seems to work generally! We can send our multicast discovery packets and
accept/initiate TCP connections over awdl0 using sockets that have
SO_RECV_ANYIF sockopt set, and that part works beautifully - so long as you
open AirDrop in Finder to "wake up" AWDL first. I cannot figure out a way of
causing this wake up without using NetService/Multipeer Connectivity, which are
a) not a part of our existing multicast discovery mechanism and b) not
available to use in Golang anyway.
(Incidentally I was also trying to do this on iOS recently under a
NEPacketTunnel extension using NetService, because doing this on iOS devices
too would have been *really* awesome, but was thwarted upon being told on the
developer forums by Quinn that the AWDL interface doesn't seem to be scoped for
use in a network extension :-( damn!)
I am assuming that there is some low-level syscall/ioctl or similar that causes
AWDL to "wake up", as I figure that the NetService/Multipeer Connectivity APIs
have some method for doing this. I am hoping to make the same call to wake up
the AWDL driver periodically so that nodes can multicast and find each other.
Does anyone have any idea how the wake up works and how I can initiate it
myself programmatically?
Would really appreciate any help.
Rgds,
Neil Alexander
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden