Here we outline the steps involved in integrating Anyfi.net software in your product. By following these steps you should be able to put together a proof of concept integration on most platforms in just a few days. If you prefer to learn by example check out the reference integration for CarrierWrt, in the form of a pull request on GitHub.
Anyfi.net software can be integrated in many different types of networking equipment. Choose the type most appropriate for your product.
Before you integrate Anyfi.net software you typically want to create a feature branch or similar in your firmware build system.
For the reference integration we simply created a fork of the CarrierWrt repository on GitHub.
The first thing you need to do is add a step to your firmware build process that downloads and installs Anyfi.net software. Anyfi.net software comes pre-built for a number of hardware platforms and software environments and can be downloaded from a URL composed from the GNU target name.
In the reference integration the software is downloaded by the OpenWrt build system according to the instructions in the anyfi package Makefile.
Anyfi.net software consists of two user space daemons; the radio daemon anyfid and the tunnel termination daemon myfid. They must be started and stopped at the right time. The anyfi.sh file from the reference integration provides an excellent example of how to do this in an OpenWrt environment.
The Anyfi.net radio daemon anyfid needs a low level interface to the Wi-Fi driver. Linux 3.12+ (or compat-wireless 2013-11-05+) provides this interface out of the box. Anyfi Networks can provide improved Wi-Fi drivers for chipsets from Broadcom, Qualcomm Atheros, Ralink and Realtek. Contact firstname.lastname@example.org for more information.
For a complete example of how to integrate the software in an OpenWrt environment please see commit 17d2028: Integration of Anyfi.net software from the reference integration.
Since Wi-Fi routers tend to have relatively complex configuration interfaces geared towards enthusiasts we recommend adding support for setting the 'controller', 'floor' and 'ceiling', as well as individual checkboxes for the SDWN radio and tunnel termination functionality.
Anyfi.net software includes a file called TESTING that contains some simple manual integration tests that you can run through to make sure everything works correctly. It shouldn't take more than an hour or two.
When integration tests are all green you can merge the integration back to mainline.
For the CarrierWrt reference integration we simply created a GitHub pull request containing integrations for all product types and merged the changes in commit e3e3a4e7.
Tests need to be rerun when you have updated the Wi-Fi driver, made more extensive changes to the the Wi-Fi subsystem or when you update the Anyfi.net software itself. These should all be relatively rare events.