[Interop-dev] Round 2: Network Device Config JSON Schema

Ralf Schlatterbeck (spam-protected)
Mon Nov 10 12:02:25 CET 2014


Just joining the discussion now, thanks Federico for starting this.
I'm referring to the google docs document, not the github version
(which I haven't compared, it might be the same).

Several points from my side:
- My use-cases come mostly from a node database perspective
- We currently distinguish a device from a device type.
  The latter contains all attributes that are common to a device
  made by a certain manufacturer, e.g. Linksys WRT54GL.
  We have the following attributes there some of which we may
  want to add to our common schema:
  - name (e.g. Linksys WRT54GL)
  - model_no (e.g. WRT54GL)
  - revision: Devices often come in several revisions that may
    *completely* change the hardware in the device. The model number
    usually doesn't change. An example for complete hardware change with
    revision number is the ASUS WL500G Premium, see
    http://wiki.openwrt.org/toh/asus/wl500gp (sorry for an example with
    a very old device, I happen to have several of these)
  - The manufacturer is a company, we model companies (with lots of
    optional attributes like address and phone number) as a separate
    entity and link it to the device type.

  The device would get all the attributes that are *not* common
  to all devices-types made by a manufacturer. This includes
  (static) configuration like IP addresses.

  I *think* the current hardware section captures some of
  the attributes above, I'd add revision and flash memory.
  Our use-case for capturing the hardware attributes separately
  is that most users really don't know much about their device,
  so they can simply chose something pre-configured.
  I would also keep the *typical* RAM, Flash, and CPU Frequency
  configuration for the device there. If we later model more complex
  devices where some of these aspects can be changed we could override
  this in another section that only applies to the concrete device.
  I've added my comments to the hardware section.
- We have an optional "description" attribute for almost anything, this
  is very useful for comments and a more verbose description. Since we
  said that attributes would be optional, I'd add that in.
- Regarding 'maintainer' in the general section: We have quite a complex
  model for persons and legal entities, and several attributes for
  ownership and maintainership of a device. In fact we store this info
  not with the device but with the node (to which the device belongs).
  Although this decision has spawned some discussions.
  So I'd vote for a separate section for modelling ownership and not put
  this into an attribute of the device. Note that Funkfeuer thinks that
  personal information should be visible only to members of the network,
  not generally in an API (privacy issue).
- Since we currently aim at wireless devices I'd vote for 'firmware' and
  'firmware_version' instead of os. Note that the os type and -version
  might be attributes of a separate firmware datatype to be modelled
  later.


-- 
Dr. Ralf Schlatterbeck                  Tel:   +43/2243/26465-16
Open Source Consulting                  www:   http://www.runtux.com
Reichergasse 131, A-3411 Weidling       email: (spam-protected)
allmenda.com member                     email: (spam-protected)




More information about the Interop-dev mailing list