Skip to content

Conversation

@robhoes
Copy link
Member

@robhoes robhoes commented Sep 23, 2014

When on the Linux bridge backend and when the "enic" driver is loaded, we need
to apply a workaround (implemented in the following commit).

The enic driver is for Cisco UCS devices. The current driver adds VLAN0 headers
to all incoming packets, which confuses certain guests OSes.  The workaround
constitutes added a VLAN0 Linux device to strip those headers again.

The patch moves the "backend_kind" ref outside the Bridge module, and adds an
"need_enic_workaround" function.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
When the enic workaround needs to be applied (according to the check
implemented in the previous commit), then when asked to add an interface to a
bridge, create a VLAN0 device for the given interface, and add that to the
bridge instead. This applies to bonded interfaces as well as individual ones
(we simply add the VLAN0 device on top of the bond device).

Also, in Interface.make_config, we need to take care to configure both the base
device as well as the VLAN0 device with the same parameters.

Finally, when destroying a bridge with a VLAN0 bond, we need to destroy the
bond device as well.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
@johnelse
Copy link
Collaborator

Let's do it.

johnelse added a commit that referenced this pull request Sep 23, 2014
CA-115557: networkd: implement enic workaround
@johnelse johnelse merged commit ed2f3e8 into xapi-project:master Sep 23, 2014
@robhoes robhoes deleted the ucs branch September 23, 2014 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants