Skip to content

Conversation

@robhoes
Copy link
Member

@robhoes robhoes commented Sep 22, 2014

No description provided.

@thomassa
Copy link
Contributor

Looks as if it should work fine.

A couple of fairly trivial points:

For ease of understanding the code in future, I think need_enic_workaround would be a clearer name than apply_enic_workaround which sounds as if it should do the applying itself, and it might be worth copying a bit of explanation from the commit-message into the code, perhaps putting

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 adding a VLAN0 Linux device to strip those headers again.

next to that checking-function.

@robhoes
Copy link
Member Author

robhoes commented Sep 22, 2014

@thomassa Thanks, I'll make those changes.

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>
@robhoes
Copy link
Member Author

robhoes commented Sep 22, 2014

@thomassa I have now updated the commits.

thomassa added a commit that referenced this pull request Sep 22, 2014
CA-115557: networkd: implement enic workaround
@thomassa thomassa merged commit 099cfc5 into xapi-project:xs64bit-ring3 Sep 22, 2014
@robhoes robhoes deleted the ucs2 branch September 23, 2014 08:58
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