[Interop-dev] Network Device Configuration JSON Schema

Jernej Kos (spam-protected)
Sun Nov 2 15:07:55 CET 2014


Hello!

Ok, thank you for your clarification.

> Latelly i've been working more on the network device configuration
> object, which I simplified by calling it network-device-schema.

The proposed terminology does not help though. If you are proposing a
configuration schema then it should be named "Network Device
Configuration JSON Schema". And there should be another schema named
"Network Device Monitoring JSON Schema". Using a generic name and mixing
various things together is IMO not a good thing.

> It's true that the schema contains also dynamic attributes (like
> noise and dbm) which change over time, and after you pointed that I
> realized it might not have sense to put it there.

The difference is that the configuration schema is used to bring a
device into a specific state, while the monitoring schema can be used to
report on the current state of the device (which in ideal conditions
should somehow reflect what was configured and would also provide some
additional "dynamic" data).

Also, you propose the name "NetJSON". I personally don't like it because
it is, similar to "network-device-schema", much too generic. There
should be a different specification for configuration and a different
specification for monitoring.

But ok, let's focus on configuration. If I understand you correctly, we
are not aiming for an API but only for a self-contained JSON-based
serialization format of a node's configuration. This configuration
should IMO be:

  i) Platform-independent (it should be able to describe any network
     device configuration). This configuration can later be transformed
     for example into OpenWrt UCI, but the schema itself should be
     platform-independent.

  ii) Extensible. As we have learned when redesigning the nodewatcher
      platform, no one schema can provide everything so it should be
      easily extensible when later one one needs to add some new
      attributes.

From my end, I can provide you with the platform-independent
configuration schema description that the current nodewatcher
development version is using:

  https://nodewatcher.readthedocs.org/en/development/node_config.html

An example simplified JSON serialization of this schema for an imaginary
node would be:

  https://gist.github.com/kostko/9b6eb44f373e17891d65

Note the absence of any platform-specific device identifiers (we are
using names like "lan0" and "wifi0" to denote interfaces -- these
identifiers are later resolved depending on the target device). Also
note that nodewatcher is actually able to validate whether this
configuration can be instantiated on a concrete target device.

In case we come up with a good schema, I would be willing to provide an
implementation of nodewatcher v3 configuration exporter.


Jernej

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.funkfeuer.at/pipermail/interop-dev/attachments/20141102/afe08fff/attachment.sig>


More information about the Interop-dev mailing list