IPv6 and TLS capable network-superserver in Lua and C with HTTP and RPC Slave

The summer of code project of Steven Barth aka Cyrus is about planning and implementing an IPv6 and TLS capable
superserver in Lua as well as an HTTP/1.1-Server working on top of it
using the LuCI HTTP-Stack. This application will serve LuCI – the
Freifunk Firmware web user interface – and replace the currently used
slower CGI-solution without IPv6 and encryption support. Additionally
an RPC-Server will be built to allow remote administration of one or
more OpenWrt devices in a standardized way using JSON-RPC over TCP.

LuCId HttpD

The results of the summer work of Cyrus is pretty overwhelming. There is for example nixio, the new POSIX Lua library which will help us getting rid of the Lua 3rd
party library mess. And based on that there is also LuCId – which was described in the GSoC project. It brings us a new efficient HTTP-server. Some people may have
discovered that Cyrus already checked in things into trunk ocassionally. Also SSL support is working. Another nice new feature is native
support for creating wizards which will be used in the near future. The results of LuCId are already being tested in productive environments. They are performing well. Kernel mode
IO and TLS encryption function well. Special thanks for the achievements also go to John Crispin aka BLogic who is the mentor of Steve during the summer.

Links

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

Links

* Source code: http://sourceforge.net/project/showfiles.php?group_id=180858&package_id=268419
* LXDE: http://lxde.org
* Fred Chien: http://fred-zone.blogspot.com/search/label/LXDE

 

Status of Service Discovery for Freimap development

An update on one of our Google summer of code projects: Service Discovery for Freimap. Stefano Pilla from Ninux.org is working on the project. We have widened the project a bit. He is now also working on porting freimap to IDE like
Netbeans. This will make it easier in the future to implement new graphic map views.

Service Discovery works fine and at the moment Stefano is testing a prototype and working already on documentation. During the project he got in touch with the creator of JmDNS, Rick Blair. JmDNS is an implementation of mdns for Java. He also started an exchange with the creator of JXMapKit
(SwingLabs – Josh) that is the new kind of map for freimap that we want
to use with Openstreetmap.

screenshot of the "new freimap"

An important mentor for this project is Alx Morlang from Freifunk in Berlin. Thank you! And our friends from Ninux namely – Saverio, Claudio and all of the team. Service Discovery will be tested first in the freifunk ninux network in Rome during the upcoming weeks with mdns.

screenshot of the "new freimap"

Rundfreifunk vom WCW 2009

Zum Wireless Community Weekend wird am Samstag, den 23.5.2009 zwischen 19-21 Uhr Live on air auf Radio Blau (UKW in Leipzig und Internetstream weltweit) eine Rundfreifunk-Sendung direkt aus dem Herzen Berlins aus gesendet. So stehen uns drei Stunden freier Radioraum auch auf ganz anderen Frequenzbändern zur Verfügung, der nur darauf wartet von uns mit Leben gefüllt zu werden. Wer Radio Blau nicht kennt, hier noch eine kurze Erklärung: Radio Blau ist ein Freies Leipziger Bürgerradio und ist im Großraum Leipzig mit jedem Radio empfangbar. 

Wer möchte, kann hierzu in Vorbereitung schon Audiobeiträge bzw. Interviews vorbereiten, die im Rahmen dieser Sendung ausgestrahlt werden können. Bitte meldet euch hierzu bei Ufo.

6mesh project: IPv6 freifunk mesh networks

Alex Morlang and Daniel Paufler had a presentation about the current advancement of the Freifunk 6mesh project for IPv6 routing in wireless mesh networks at a meeting of Freifunk core technologists in Berlin. The presentation is currently only partly available in English, but the German version offers good insights still for people working on wireless mesh networks anywhere. 

Links:

* pdf version at freifunk Berlin download site: http://download.berlin.freifunk.net/pdf/vortrag/6mesh/freifunk-ipv6-mesh-siit-praesentation.pdf
* Alexander Morlang http://blogs.k-ita.de/~alx/
* Daniel Paufler http://blog.leo34.net

OpenWrt team announces OpenWrt Kamikaze 808 Release with Luci Interface

The OpenWrt team (Cph) has announced a new version of its Linux distribution for embedded wireless devices named "OpenWrt Kamikaze 808 Release". I talked to Felix Fietkau already at the WCW. Unfortunately we did not have the time to do an interview at the end. But Cyrus from freifunk Halle gave a short showcase of his interface (in German). The OpenWrt team was also impressed by it and they now announce the enclosure of the Luci interface officially. Congratulations Cyrus!

It has been quite a while since OpenWrt had a new Kamikaze release. The developer team has decided that it is time to get things straight and focus on a new release. This release have the official name: OpenWrt Kamikaze 808 Release.

The schedule will look like this:
*Last day in July – final release candidate: 808 RC-1 808 RC-1 will be a feature freeze, and all changes after this point will be bug fixes.
*Last day in August – final release: OpenWrt Kamikaze 808 Release.

OpenWrt Kamikaze 808 Release will focus on bringing the following:
– Firewall rewrite
– Broadcom 47xx running reliably with the new Kernel, not including wifi
– IMQ and Traffic shaping tested with newer kernels, especially 2.6.25
– Sysupgrade for more platforms (x86 is tested again)
– The new web interface (LuCI, Lua Configuration Interface)
– Attention towards the integration of security updates
– Package maintaining and updates between releases
– Testing, testing and lots of testing…

The 808 Release will also include support for several new platforms/targets. (http://forum.openwrt.org/viewtopic.php?pid=69873 )

FFLuCI the Next Generation Lua web interface für OpenWRT von Steven Cyrus Barth

Steven Cyrus Barth im Gespräch mit Bastian Bittorf über das Freifunk-Luci-Interface für OpenWRT.



Luci-Interface für OpenWRT von Steven Cyrus Barth from Mario Behling on Vimeo.

Some more info in English: FFLuCI is a Lua MVC-Framework for Freifunk with templating support. There are
working configuration pages for many system, network, services and wifi settings. Please visit http://luci.freifunk-halle.net for an overview of functions, screenshots, tutorials, SVN URL and snapshot images for Atheros and Broadcom.

Steven Cyrus started to develop Luci because he was not satisfied projects like XWRT implemented things. He had a look at the X-WRT Lua files in their repository first, but what was missing was a clear abstraction layer and templating support so I decided to build everything from scratch. According to Cyrus – X-WRT has a very nice UI written in shell code but there are only limited capabilities of this scripting language and so "it is time
to bring this thing to the next level using OOP and such nifty stuff."

Luci already has a number of working configuration pages. There are more – or in a few cases less – working configuration pages in (for now) German titles and descriptions for the:

  • Ethernet Switch
  • Ethernet Interfaces
  • DHCP-Server
  • PPPoE/PPTP
  • Static Routes
  • Portforwarding
  • Firewall
  • QoS
  • Wifi Devices
  • Wifi Networks
  • OLSR + Plugins
  • FFLuci itself
  • Package Management
  • Root Password and SSH-Public Keys
  • Mount Points for external drives
  • HTTP-Server
  • SSH-Server
  • Dnsmasq

Also there are a few public status pages for basic system information, WLAN-Scan, Contact data and OLSR a bit like those in the Freifunk Firmware. Have a look at the screenshots here: http://firmware.freifunk-halle.net/ffluci/screenshots

Configuration Bind Interface (CBI):
You just describe the data model of the UCI file and Luci does the rest for you: It will create the HTML-form, parse and validate the user input and write the configuration data to UCI. So no need to redo all these things on every configuration page again and again. It also supports basic field dependencies, dynamic validation functions, section creation, deletion and more. See an example here: http://wiki.freifunk-halle.net/Luci:WritingModules#CBI_models

Privilege dropping:
To avoid remote exploits (like those in older versions of the Freifunk Firmware) FFLuCI will set the UID/GID of pages running in the main public non-protected section to nobody/nogroup. There are many things left to do like porting over dhcpsplash, accounting, statistics and more to Kamikaze. Contributors are welcome.

Links:

Chaosradio Express mit Harald Welte zum Thema “Software Defined Radio” und technische Grundlagen und Entwicklung mit GNU Radio

Harald Welte ist zu Gast bei Chaosradio Express und gibt Einblicke in seine derzeitigen Aktivitäten.

Originalposting: http://chaosradio.ccc.de/cre087.html
Download: http://chaosradio.ccc.de/archive/chaosradio_express_087.mp3 (118.6 MB)
Dauer: 02:09:30h
Veröffentlicht am: 17.05.2008, 22:00 Uhr
Aufnahme vom: 14.05.2008
Moderation: Tim Pritlove
Gast: Harald Welte

Moderne Funkempfänger und
-sender setzen in zunehmenden Maße auf Software, die Schritt für
Schritt die klassischen Hardware-Komponenten ersetzen. Das erlaubt
nicht nur flexibere und günstigere Geräte, es ermöglicht auch, den
eigenen Computer als komplexes Analyse- und Dekodierungswerkzeug
einzusetzen. Die freie Software GNU Radio bietet heute schon den
Werkzeugkasten zum Erzeugen und Dekodieren von Funkwellen auf dem PC
und ebnet einer Vielzahl an möglichen Projekten den Weg, die bislang
nur mit aufwändiger und teurer Hardware realisiert werden konnte. Harald
Welte erläutert im Gespräch mit Tim Pritlove die Grundgedanken von
Software Defined Radio und erläutert wie man GNU Radio und die freie
Universal Software Radio Platform (USRP) für eigene Projekte zum
Einsatz bringen kann. Es werden verschiedene Anwendungsmöglichkeiten
vorgestellt und vor allem auf den aktuellen Stand des GSM Software
Project eingegangen, das sich die Implementierung eines GSM-Stacks zum
Empfangen und Senden zum Ziel gesetzt hat.

Harald auf seinem Blog über die Sendung:

I’ve had the pleasure of being invited to Chaosradio Express
maker Tim Pritlove to talk about Software Defined Radio in general, and
gnuradio plus USRP specifically. You can listen to the resulting 2+ hours of podcast (in
German)
. It’s been a great experience, and I have a good feeling that it was possible for
us to explain this fairly detailed subject to our already at least moderately
technical audience. SDR is really hard since it combines aspects of traditional radio, i.e. physics
of electric waves, electrical engineering both analog and digital, digital
signal processing and software. The biggest part is really advanced
mathematics, and at least from all the subjects that I’ve seen, it’s probably
the most direct and close-to-theory incarnation of applied math. Luckily, a fairly high-level understanding of the algorithms and principles
involved are already sufficient to do a lot, since most of the deep-down
mathematical details of many algorithms have already been implemented as
building blocks for gnuradio. Still, I assume the number of developers who
are actually able to use gnuradio is far too low. If you’re looking for an
interesting field of software right now, I suggest going for digital signal
processing. It’s in every area of communications, ranging from analog modems
over ISDN, DSL, WiFi, USB2, Bluetooth, GSM, UMTS, DECT, ZigBee, Ethernet, VoIP
and probably any other communication technology that we use today. (Sat, 17 May 2008, http://laforge.gnumonks.org/weblog/2008/05/17/#2080517-chaosradio-sdr)

Links:

Open IEEE 802.11s

open80211s.org is an interesting project to open up the IEEE 802.11 industry standard for wireless mesh networks. Current mesh networks are based on mesh routing software working on higher network layers and on the 802.11a/b/g standard hardware. Mesh-Routing with the
802.11s standard is intended to be more efficient as the routing is "happening" at the MAC layer.

open80211s is a consortium of companies who are sponsoring (and
collaborating in) the creation of an open-source implementation of the
emerging IEEE 802.11s wireless mesh standard. The resulting software
will run on Linux on commodity PC hardware.
Goals
* To create the first open implementation of 802.11s.
* To let the world use it, understand it and contribute to it.
* To connect all the Linux devices in the world to One Big Mesh.
(open80211s.org)

IEEE 802.11s ist eine bisher noch nicht angenommene Teilspezifikation des IEEE 802.11-Industriestandards
für drahtlose Netzwerkkommunikation. Ziel von 802.11s ist ein
herstellerunabhängiger Standard zur Einrichtung von drahtlosen, vermaschten Netzwerken.
Im Unterschied zu derzeitigen Mesh-Netzen, die auf vorhandener
802.11a/b/g-Standard-Hardware und auf höheren Netzwerkebenen
arbeitender Mesh-Routing-Software basieren, findet das Mesh-Routing bei
802.11s in der MAC-Schicht statt und ist daher wesentlich effizienter,
insbesondere auch in Hinblick auf Hardwareanforderungen und
Energieverbrauch. (Version 3.2. 2008, 14:30, http://de.wikipedia.org/wiki/IEEE_802.11s)

IEEE 802.11s is a draft IEEE 802.11 amendment for mesh networking, defining how wireless devices can interconnect to create an ad-hoc network. 802.11 is a set of IEEE standards that govern wireless networking transmission methods. They are commonly used today in their 802.11a, 802.11b, and 802.11g versions to provide wireless connectivity in the home, office and some commercial establishments. It extends the IEEE 802.11 MAC standard by defining an architecture and protocol that support both broadcast/multicast and unicast delivery using "radio-aware metrics over self-configuring multi-hop topologies." (2 May 2008, 16:55, http://en.wikipedia.org/wiki/IEEE_802.11s)

 [via alx]

Locations Based Services in Free Wireless Networks: MagicMap – Kooperative Positionsbestimmung mit Hilfe von WLAN

Eine Idee, die auch in freien Netzen genutzt werden kann: Bereits 2004 haben
Peter K. Ibach, Tobias Hübner und Martin Schweigert
von der HU Berlin auf dem Chaos Communication Congress 2004 ein Paper über kooperative Positionsbestimmung mit Hilfe von WLAN veröffentlicht. Auf dem Gründerkongress in Berlin stellten die Entwickler die neueste Version der Software vor, die aus dieser Idee entstanden ist: MagicMap

magicmapMit Hilfe der "Karte des Rumtreibers" konnte Harry Potter die Positionen aller Personen in und um Schloss Hogwarts überblicken. Wir haben eine solche "magische Karte" zur Positionsbestimmung mobiler Systeme basierend auf WLAN-Signalstärke-Auswertung entwickelt. MagicMap ist eine reine Softwarelösung, die bei den mobilen Systemen außer einer konventionellen WLAN-Ausstattung keine weitere Hardware erfordert. Die WLAN Access Points können beliebig verteilt sein und es sind weder Eingriffe an der AP-Hardware noch an der Software nötig. Unsere Versuche am Uni-Campus Berlin-Adlershof zeigen in typischen Büroumgebungen eine Positionierungsgenauigkeit im einstelligen Meter-Bereich. Die eigene Sichtbarkeit unterliegt dabei der vollen Kontrolle der Peer-Knoten, die den Zugriff auf ihre Positionsinformation individuell festlegen können. Die Software steht zum freien Download zur Verfügung und kann für Experimente oder Anwendungen genutzt werden. (1. Mai 2008, http://www2.informatik.hu-berlin.de/rok/MagicMap/)

Das Projekt wird am Lehrstuhl Rechnerorganisation und Kommunikation des Instituts für Informatik der Humboldt-Universität zu Berlin umgesetzt. Die Software steht unter der GNU General Public License (GPL) und ist bei Sourceforge für Windows und Linux verfügbar. Das Wiki mit vielen weiteren Infos ist hier: http://wiki.informatik.hu-berlin.de/nomads/index.php/MagicMap

Mit der Idee lassen sich Locations Based Services umsetzen. Auch in Räumen, wo die Positionsbestimmung von Personen und Gegenständen sinnvoll ist, kann die Software hilfreich sein, z.B. in Kraftwerken, auf Schiffen oder möglicherweise auf einer Mondbasis :-).