Freifunk Google Summer of Code Project LXNM (Lightweight Network Manager) current results

Fred Chien from Taiwan has published some results on the LXDE blog about his current work for the LXNetworkManager and I am happy to present some screenshots here. Besides having Fred working on code related to wireless networks, the goal of teaming up with him in the Freifunk Google Summer of Code is to bring him closer in touch with the global free wireless community. For a long time we are looking for an easier to use and faster lightweight network manager, that supports freifunk community networks. Through his previous work Fred has shown that he shares those goals and that he is eager and able to get things done. Also we can be sure, that he will continue working on the code once the summer of code funding is finished. The rewritten LXNM already supports wireless connection settings and we are discussing at the moment different ways to define standards for wireless freifunk networks. So, I am looking forward to an exciting ongoing development. Thanks for a great job this summer, Fred!

Lightweight Network Manager

Detailed description of the current status provided by Fred: LXNM (Lightweight Network Manager) is working now after a long time for development. If you often check the news of SVN, you can notice that the next generation of LXNM has already supported wireless connection setting, also it has many feature as old version of LXNM. The new implementation and protocol defination seems to work well at least there is no bug of old version of LXDE had that no Access Point was scanned always.

As a network manager, wireless is the basic feature, but only the feature is not enough for new internet devices. To be a full function network connection utility, it must provide most popular methods of internet connection service something’s like 3G(HSPDA), PPPoE, dial…etc. And also we can expect WiMAX will be coming soon, so supporting WiMAX maybe important and necessary in the feature as well.

So far most network connections methods need to use PPP(Point-to-Point Protocol) to make connection, so we must try to focus on how’s PPP working and how to integrate PPP stuffs with our program. Fortunately, Most of operating system was using pppd to handle the ppp connections, it seems to be a standard we can consider. If we know how to get pppd immediate status, it will be easy to integrate PPP with our utility for us.

Regarding pppd implementation, it uses a tdb(samba database) to store current connection information(IP, interface, deivce, gateway, dns…etc) in system folder as root. Thus we need to read the file to get network status and the relationship between modem(eg, 3G modem, general modem) and network interface(eg, ppp0, ppp1…). Because of pppd is a user-space implementation as well as it doesn’t have library to provide serial APIs to let us be easy to operate its own stuffs, LXNM must direct open the tdb file. The problem is that pppd will update the tdb file anytime, it is possible that database be modified when LXNM is just reading the file. When it is happened, LXNM will get incorrect information or access failed to cause crazy crash. For solving this bug, we do some to check more information details which is from tdb. After some hard works, right now the issue was solved already.

Besides, the 3G support which is most important feature people concern. LXNM will try to use AT command to control 3G(HSDPA) modem to implement the connection handler, it can provide more information(ISP, Service Location, current area…etc) for your SIM Card with AT command. Some developers suggest us to research the implementation of Modem Manager Project for helping development.

Now we are working on this part which is that dialing with 3G modem, but there were also some weird problems we got. More details about those issues will be explained at blog next time.

List of Access Points on LXNM

Scanning for Access Points on LXNM


* Source code:
* Fred Chien: