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      (Macnetworkprog@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/macnetworkprog/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to