Archive for November, 2010

The Ubiquiti Unifi

Wednesday, November 3rd, 2010

Last friday (October 29th) my friend Ulf from Freifunk Berlin came to Rome. I went with him and other Ninux guys at the Ubiquiti conference.

All was about the presentation of new devices, and the real reason why all the Ninux guys went to the conference, was the free device that everybody was going to receive for free at the end of the day :) It is always good to have a bunch of free devices when you have to run a no profit wireless community network.

I did not really like the new ubiquiti strategy. Instead of focusing on hardware, they are trying to be a “System company”. They are developing software (free to use, but not free software) that is tightly binded to their products. So they are selling some good H.264 camera, but they push to use them with their software. Also a lot of hardware came out with propritery firmware extensions that brake the compatibility with other 802.11 products.

The worst in my opinion is the Unifi, the one they give as a gift at the end of the conference. They sell it as a “Enterprise Wifi System”, because together with the device there is a piece of software to configure a massive number of devices at once. But the device it self is no more than a fonera inside.

At home with Ulf we quickly got into the device with SSH, and we found a very old kernel, 2.6.15 if I remeber correctly. Also, because they want us to use their software to configure the device, there was not web interface right available :(

But no problem, sunday at the Fusolab we had Claudio already testing some patches to make OpenWRT Backfire running on the device… official support with the OpenWRT distribution is on its way !


GSoC 2010 – IPinUDP generic encapsulation module

Tuesday, November 2nd, 2010

GSoC 2010 is over and it is time to evaluate the status of the project IPinUDP generic encapsulation module.

The kernel module ipudp can be used to create virtual network devices that perform ip-udp encapsulation. Packets routed through this network interfaces will be encapsulated in IP/UDP headers and sent to the proper tunnel endpoint. Ipudp module supports both IPv4 and IPv6 encapsulation. This means that packets can be encapsulated within IPv4/UDP and IPv6/UDP headers.
As to the current status, ipudp module provides 2 virtual devices modes:
  1. FIXED mode: a single ipudp (v4 or v6) tunnel is bound to a virtual ipudp device. This type of virtual interface is double-stack, in the sense that we can assign both IPv4 and IPv6 address to the device and use it for both IPv4 and IPv6 applications.
  2. MULTI_V4 mode: multiple ipudp (v4 or v6) tunnels can be bound to this type of virtual interface. For each encapsulated packet, the proper tunnel is chosen by a set of rules that bind the destination IP address of the inner packet, with a given tunnel. For this interface type, only IPv4 traffic is supported.
The module can be extended to support other encapsulation modes with different forwarding policies.
Ipudp module comes with ipudp_conf a configuration tool used to create, remove and list virtual devices, add to add, remove and list tunnels and rules.
The module is at a very initial status and it hasn’t been completely tested. I’m not 100% sure that it is bug free, so try it on virtual machines. Moreover, the project still needs some details need to be improved and a simple user-space program for dynamic tunnel establishment when for hosts behind NAT. I’m still working on these last details.
For any additional details please refere to the source code, available at, and in particular to the README file, which provides a simple manual for ipudp_conf and some practical examples.