Versions Compared

Key

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

Background

EVE supports access VLANs for application instances connected to switch network instances. Virtual interfaces (vifs) corresponding to different applications (attached to the same switch network instance) can be made part of different VLANs with this feature. Access port VLAN support is specified in EVE VLAN support - switch network instances 

This document describes the more complex part which includes using VLANs (and/or Link Aggregation Groups (LAGs), aka “bonds”) for EVE management traffic and for local network interfaces.

Use cases

We want to structure things so that both EVE management traffic and the app instances can access VLANs, LAGs, and VLANs over LAGs. The VLANs and LAGs part of the picture are new, but the other parts are existing. (We might have confusion and bugs due to the common practise of the name of the system adapter, logical label, phylabel, and Linux ifname being identical in most deployments and models.)

...

NOTE:  There are many types of bond interfaces that linux bonding modules support. There are certain types of bond interfaces that will need the upstream network equipment (switch or router) to be configured with corresponding configuration eg: 802.3ad with Link Aggregation Control Protocol (LACP).
And there are other types of bond interfaces that will not need any upstream network equipment configuration eg: active-backup mode, adaptive load balancing mode, etc.
At this point it is not clear what type of bonding interfaces customers might ask for in the future. Within the scope of this document we define placeholder API definitions for bond interfaces and represent how bonds will look in the bigger picture, but not discuss any implementation specific details.



















Object Model

Today’s object model has two layers, and we will discuss a new intermediate layer below: 

...

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
      }
   ],
   "bondGroups":[
      {
         "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":{
            
         }
      }
   ]
}


Example realization in the EVE API

New vlan adapter proto message:

...