Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

An example JSON file "device-description.json" is provided below:

{

   "devices": {

       "rest:192.168.1.1:80": {

           "rest": {

               "username": "server",

               "password": "",

               "ip": "192.168.1.1",

               "port": 80,

               "protocol": "http",

               "url": "",

               "testUrl": "",

               "manufacturer": "GenuineIntel",

               "hwVersion": "Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz",

               "swVersion": "Click 2.1"

           },

           "basic": {

               "driver": "restServer"

           }

       }

   }

}

Note that manufacturer, hwVersion, swVersion, and driver fields are sensitive pieces of information related to the server device driver.

...

A server with 2 Intel CPU cores and 1 Mellanox 100 GbE NIC might provide the following responce:

{
    "id":"metron:server:000001",
    "serial":"4Y6JZ42",
    "manufacturer":"GenuineIntel",
    "hwVersion":"Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz",
    "swVersion":"Click 2.1",
    "cpus":
    [
        {
            "id":0,
            "vendor":"GenuineIntel",
            "frequency":3200
        },
        {
            "id":1,
            "vendor":"GenuineIntel",
            "frequency":3200
        }
    ],
    "nics":
    [
        {
            "name":"fd0",
            "index":0,
            "vendor":"Unknown",
            "driver":"net_mlx5",
            "speed":"100000",
            "status":"1",
            "portType":"fiber",
            "hwAddr":"50:6B:4B:43:88:CB",
            "rxFilter":["flow"]
        }
    ]
}

Note that the unit of frequency field in each CPU is in MHz, while the unit of the speed field in each NIC is in Mbps.

...

The monitoring command issued by the device driver hits the following resource path on the server:

A server with 2 Intel CPU cores and 1 Mellanox 100 GbE NIC might provide the following responce:

{
    "busyCpus":3,
    "freeCpus":1,
    "cpus":
    [
        {
            "id":0,
            "load":0,
            "busy":true
        },
        {
            "id":1,
            "load":0,
            "busy":true
        }
    ],
    "nics":
    [
        {
            "name":"fd0",
            "index":0,
            "rxCount":"0",
            "rxBytes":"0",
            "rxDropped":"0",
            "rxErrors":"0",
            "txCount":"0",
            "txBytes":"0",
            "txErrors":"0"
        }
    ]
}

A complete implementation of the data plane side of a server device can be found here.

...