Posted: Mon Feb 22, 2010 21:19 Post subject: Bonjour Sleep Proxy Server
In Apple's "Snow Leopard" (Mac OS 10.6) release a feature is now available labeled, variously, "Wake on Demand." Under the hood this feature uses Bonjour and a "sleep-proxy" service that runs on Airport Extreme and Time Capsule devices. I believe that at a protocol level this is an implementation of mDNS.
I would really, REALLY like to see dd-wrt offer this Bonjour service.
Apple's Bonjour Sleep Proxy is implemented in mDNSResponder. This project is open source under the Apache License. It should be free to consume and redistribute as part of any *wrt project. The source code is viewable at:
Various bits of Sleep Proxy (mostly client as near as I can see) are scattered around the various OS-specific directories. Sleep proxy Server seems to mostly live here:
As an Apple user I think this would be a great addition. _________________ Linksys WRT610Nv1
DD-WRT v24-sp2 (10/13/10) big - build 15452M NEWD-2 K2.6 Eko
I would also like to see a implementation of a sleep proxy in DD-WRT.
Meanwhile i came up with a simple workaround:
The dnsmasq server is able to run a a script when a new lease is requested or a current lease is updated. Just add a line like this to the configuration:
Code:
dhcp-script=/tmp/wakeup.sh
The script identifies my apple tv by it's mac address. Everytime the apple tv get's a new lease, my macbook is waked up by a wake-on-lan call. To be sure my macbook will only wake up when the apple tv is powered on, i decreased the lease time to 60 minutes (my macbook get's into sleep mode after an hour of inactivity)
Would be great to have support for wake on demand on our dd-wrt routers but I feel could be a hard task to migrate the apple code.
I have been checking the apple code and even everything is there, including the Sleep Proxy Server, the code is divided in 2 parts, platform specific and no platform specific. There are some code for OSX, Win32, a Posix implementation (that maybe could be used as basis for dd-wrt), etc…
Unfortunately the SPS code is specific for OSX and even worst looks deeply linked to BPF packet filters (I think only supported on BSD).
I have been working with the Win32 implementation which is the most complete after the OSx version and have manage to enable the advertising of the SPS, etc.. but well all the code for the service is missing, nothing is working. :(
Maybe some expert on dd-wrt kernel could advise more about the BPF filters topic, if the are supported some how. In any case this won't be a pice of cake..
Maybe there is some other Sleep Proxy implementation that could be migrated more easily? Any idea?