Español   Català  

CNML/en

From Guifi.net - English Wiki

Community Network Mark Up Language (CNML) is a project that aims to define an open ISO standard and scalable for describing mesh clouds, though it's not limited to this kind of networks and nowadays it's being used also in point to point infrastructure networks.

CNML is a specification based on XML, which makes it easily extendible and readable for humans besides of computers. It includes some ideas from other implementations and previous concepts like nodeXchange and SNDX.[1]

Some advantages of using CNML is that it allows to uncouple different functionalities independently of the web application used to show the data, reducing dependence from it and its internal tables of the database.

Be careful!

Please, take into account that the process of generating CNML for big zones (like the whole Guifi.net World, the root zone) takes a long time and a lot of machine resources (cpu, mem, access to db...) and it can take down completely our machines if done several times in a short time. We ask you to use test.guifi.net in case you want to play with CNML files and do other things related to development.

Apart from that, you can take advantage that snpservices generates every 30 minutes the CNML file of the Guifi.net World zone and places it at the following url:

http://test.guifi.net/snpservices/data/guifi.cnml

Our machines will appreciate if you downloaded this file directly and don't make them generate it again.

History

Alexander Klosch (German roots) began the CNML project in 2006 during the Wizards of OS 4 international event, in Berlin. In that moment, a community of people interested in developing such standard appeared, with participants from all over Europe like hivenetworks, Wifidog, Guifi.net, B.A.T.M.A.N, OpenWRT and FreiFunk.[2]

How does Community Network Mark Up Language look like?

In the cnml.info wiki we can find a draft:

 <cnml>
  <hardware capabilty>
  <siftware services>
  <devices> cpu, memory, storage, devices, radio level etc. </devices>
  <mapping> gps, name </mapping>
  <statistics></statistics>	
  <network environment>
  <content sharing>
  <node information>
  <owner of device>
  <picopeer>
  <traffic>
  <scale of interest to the network>
  <personal keyring>(hold private, only given volountary)
 </cnml>

Implementations

Guifi.net web app

Even if the specification is not finished, it's a while that Guifi.net allows to export zones and nodes to the CNML format from the website. Apart from that, the user can specify how detailed wants the file: nodes only, zones only and detailed nodes (including hardware, etc...):

Guifi.net allows to export zones to CNML format through its website CNML format, more and less detailed

Real examples of CNML files (they were exported from the Guifi.net website):

CNML file (zones only) CNML file (zones and nodes) CNML file with zones and nodes detailed

Library for python

See libcnml

References

  1. SNDX: Haciendo un XML-DTD para el intercambio de bases de datos de redes entre servidores
  2. CNML Roadmap, cnml.info

External links

Personal tools