[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