Versions Compared

Key

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

...

Current device model has an ioMemberList that describes the various physical IO interfaces present on the device. Two additional lists - vlanAdapters list, bondGroups bondAdapters list will be included in the device model to describe the vlan adapters and bond groups LAGs respectively. Though there are different types of IO adapters like USB, ethernet audio etc, the sample device model  below only shows IO adapters of type ethernet for brevity.

The model file below contains the newly added vlanAdapters list and bondGroups bondAdapters list along with the existing ioMemberList. Each vlan adapter in the vlanAdapters list has a name (typically reflects the lower layer adapter name and vlan id), lowerLayerName (name of the unerlying underlying physical adapter) and vlan id. Similarly each of the bondGroups bondAdapters list entries has a name field, lowerLayerAdapters list (list of underlying member physical IO adapters) and bond parameters. The example model file below shows three Vlan adapters, the first two of them has a physical IO adapter as parent and the third with a bond interface as it’s parent adapter. The bond interface in the example below splices two physical IO adapters (eth2, eth3) into a bond.

...

Code Block
{
   "arch":2,
   "attr":{
      "memory":"4G",
      "storage":"30G",
      "Cpus":"4",
      "hsm":"2",
      "leds":"0",
      "watchdog":"true"
   },
   "vlanAdapters":[
      {
         "name":"eth1.100",
         "lowerLayerName":"eth1",
         "vlan_id":100
      },
      {
         "name":"shopfloor",
         "lowerLayerName":"eth1",
         "vlan_id":200
      },
      {
         "name":"bond0.100",
         "lowerLayerName":"bond0",
         "vlan_id":100
      }
   ],
   "bondGroupsbondAdapters":[
      {
         "name":"bond0",
         "lowerLayerAdapters":[
            "eth2",
            "eth3"
         ],
         "bondParams":{
            
         }
      }
   ],
   "ioMemberList":[
      {
         "ztype":1,
         "phylabel":"eth0",
         "usage":1,
         "assigngrp":"eth0",
         "phyaddrs":{
            "Ifname":"eth0",
            "PciLong":"0000:02:00.0"
         },
         "logicallabel":"eth0",
         "cost":0,
         "usagePolicy":{
            
         }
      },
      {
         "ztype":1,
         "phylabel":"eth1",
         "assigngrp":"eth1",
         "phyaddrs":{
            "Ifname":"eth1",
            "PciLong":"0000:03:00.0"
         },
         "logicallabel":"eth1",
         "cost":0,
         "usagePolicy":{
            
         }
      },
      {
         "ztype":1,
         "phylabel":"eth2",
         "assigngrp":"eth2",
         "phyaddrs":{
            "Ifname":"eth2",
            "PciLong":"0000:04:00.0"
         },
         "logicallabel":"eth2",
         "cost":0,
         "usagePolicy":{
            
         }
      },
      {
         "ztype":1,
         "phylabel":"eth3",
         "assigngrp":"eth3",
         "phyaddrs":{
            "Ifname":"eth3",
            "PciLong":"0000:05:00.0"
         },
         "logicallabel":"eth3",
         "cost":0,
         "usagePolicy":{
            
         }
      }
   ]
}

...

Code Block
languagejs
message VlanAdapter {
	string name = 1;             // name of this VLAN adapter
	string lower_layer_name = 2; // name of the lower layer adapter bond/physicalIO
	uint16 vlan_id = 3;          // VLAN ID
}


New bond group adapter proto message:


Code Block
languagejs
message BondGroupBondAdapter {
	string bond_name = 1;       			  // name of this bond groupadapter
	repeated string lower_layer_adapters = 2; // list of PhysicalIO adapter logical names
	// Add bond parameters below.
}

...

Code Block
languagejs
message EdgeDevConfig {
+ 	repeated VlanAdapter vlanListvlans = 30;
+ 	repeated BondGroupBondAdapter bondListbonds = 31;
}


VlanAdapter and BondGroup BondAdapter messages together comprise the System Adapter L2 layer sandwiched between the SystemAdapter layer and the PhysicalIO layer.

Edge node configuration (config.EdgeDevConfig) will have two additional lists (vlanAdapters listvlans, bondGroups listbonds) in addition to the existing SystemAdapterList and DeviceIoList. The cloud controller shall have an indication flag in config.PhysicalIO that tells edges nodes and user agents that a particular physical IO adapter is either a parent of vlan adapters or is part of another bond adapter.

...

The pictures below show examples for vlan adapter and bond group adapter lists that will be part of EdgeDevConfig.

...