Skip to content
This repository was archived by the owner on Jun 20, 2024. It is now read-only.

net: Do not set bridge hw addr when creating it #3442

Merged
merged 1 commit into from
Nov 1, 2018

Conversation

brb
Copy link
Contributor

@brb brb commented Nov 1, 2018

Prior "bridge: Change local fdb entries whenever mac address of bridge device changes", FDB entry for a bridge was not inserted when creating the bridge and it could only be inserted when a hw address of the bridge was changed. Therefore, on an older than the 3.14 kernel containers were not able to reach the weave bridge w/o setting the promiscuous mode on.

This should have hit hard Kubernetes users as the weave bridge in their case is used as a default gateway, and thus it works only after manually enabling the promiscuous mode.

Additionally, w/o the promiscuous mode a packet sent from a container and destined to the gateway is flooded on all ports, so it can reach the datapath device resulting in the "Vetoed installation of hairpin flow" error.

Fix #3336 #3297 #3239 (and probably more)

Prior "bridge: Change local fdb entries whenever mac address of bridge device changes" [1],
FDB entry for a bridge was not inserted when creating the bridge and it could
only be inserted when a hw address of the bridge was changed. Therefore, on
an older than the 3.14 kernel containers were not able to reach
the "weave" bridge w/o setting the promiscuous mode on.

This should have hit hard Kubernetes users as the weave bridge in their
case is used as a default gateway, and thus it works only after manually
enabling the promiscuous mode.

Additionally, w/o the promiscuous mode a packet sent from a container and
destined to the gateway is flooded on all ports, so it can reach
the "datapath" device resulting in the "Vetoed installation of hairpin flow" error.

[1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a4b816d8ba1c1917842dc3de97cbf8ef116e043e
@brb brb added this to the 2.5 milestone Nov 1, 2018
@brb brb changed the base branch from 2.4 to master November 1, 2018 17:21
Copy link
Contributor

@bboreham bboreham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - we always call LinkSetHardwareAddr() anyway, so looks like this was just a hopeful addition.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants