• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

containernetworking / plugins
53%
master: 55%

Build:
Build:
LAST BUILD BRANCH: fix_dhcp_ipam_release
DEFAULT BRANCH: master
Repo Added 15 Nov 2017 08:41AM UTC
Files 69
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH bridge-mac-pinning
branch: bridge-mac-pinning
CHANGE BRANCH
x
Reset
  • bridge-mac-pinning
  • CNV-75526
  • add-aks-integration
  • bridge-error
  • bridge-port-isolation
  • bugfix/wrong_startrange
  • bump-go-1.26.4
  • bump-go-version
  • bump-go-version-2
  • bump-golang-ci
  • bump-libcni
  • codeql
  • comment-fix
  • contact-info
  • coryright-attribution
  • deletevlaniface
  • dependabot/docker/dot-github/actions/retest-action/alpine-3.18
  • dependabot/docker/dot-github/actions/retest-action/alpine-3.19
  • dependabot/docker/dot-github/actions/retest-action/alpine-3.20
  • dependabot/docker/dot-github/actions/retest-action/alpine-3.21
  • dependabot/docker/dot-github/actions/retest-action/alpine-3.22
  • dependabot/docker/dot-github/actions/retest-action/alpine-3.23
  • dependabot/github_actions/actions/checkout-4
  • dependabot/github_actions/actions/checkout-5
  • dependabot/github_actions/actions/checkout-6
  • dependabot/github_actions/actions/checkout-7
  • dependabot/github_actions/actions/setup-go-5
  • dependabot/github_actions/actions/setup-go-6
  • dependabot/github_actions/golangci/golangci-lint-action-4
  • dependabot/github_actions/golangci/golangci-lint-action-5
  • dependabot/github_actions/golangci/golangci-lint-action-6
  • dependabot/github_actions/golangci/golangci-lint-action-9
  • dependabot/go_modules/github.com/Microsoft/hcsshim-0.10.0
  • dependabot/go_modules/github.com/Microsoft/hcsshim-0.11.0
  • dependabot/go_modules/github.com/Microsoft/hcsshim-0.11.1
  • dependabot/go_modules/github.com/Microsoft/hcsshim-0.9.10
  • dependabot/go_modules/github.com/Microsoft/hcsshim-0.9.7
  • dependabot/go_modules/github.com/Microsoft/hcsshim-0.9.9
  • dependabot/go_modules/github.com/containerd/containerd-1.6.26
  • dependabot/go_modules/github.com/coreos/go-iptables-0.7.0
  • dependabot/go_modules/github.com/networkplumbing/go-nft-0.3.0
  • dependabot/go_modules/github.com/networkplumbing/go-nft-0.4.0
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.11.0
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.12.0
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.12.1
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.13.0
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.13.1
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.8.3
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.8.4
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.9.0
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.9.1
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.9.4
  • dependabot/go_modules/github.com/onsi/ginkgo/v2-2.9.7
  • dependabot/go_modules/github.com/onsi/gomega-1.25.0
  • dependabot/go_modules/github.com/onsi/gomega-1.26.0
  • dependabot/go_modules/github.com/onsi/gomega-1.27.1
  • dependabot/go_modules/github.com/onsi/gomega-1.27.10
  • dependabot/go_modules/github.com/onsi/gomega-1.27.2
  • dependabot/go_modules/github.com/onsi/gomega-1.27.3
  • dependabot/go_modules/github.com/onsi/gomega-1.27.8
  • dependabot/go_modules/github.com/onsi/gomega-1.27.9
  • dependabot/go_modules/github.com/onsi/gomega-1.28.0
  • dependabot/go_modules/github.com/onsi/gomega-1.30.0
  • dependabot/go_modules/github.com/opencontainers/selinux-1.11.0
  • dependabot/go_modules/golang-09a819dc01
  • dependabot/go_modules/golang-0ff27c0dc8
  • dependabot/go_modules/golang-103bedb26b
  • dependabot/go_modules/golang-1eaf3aa819
  • dependabot/go_modules/golang-29835453c6
  • dependabot/go_modules/golang-2cb2537523
  • dependabot/go_modules/golang-2d6cee5bad
  • dependabot/go_modules/golang-2f005b8ca9
  • dependabot/go_modules/golang-383d838611
  • dependabot/go_modules/golang-439c5fc513
  • dependabot/go_modules/golang-4dd97b104e
  • dependabot/go_modules/golang-51f3cddb77
  • dependabot/go_modules/golang-5c8df2ff5e
  • dependabot/go_modules/golang-61257cff18
  • dependabot/go_modules/golang-6263b2479d
  • dependabot/go_modules/golang-6a70725da1
  • dependabot/go_modules/golang-7e0ee1aacf
  • dependabot/go_modules/golang-82cdb19fbc
  • dependabot/go_modules/golang-82e3264b6f
  • dependabot/go_modules/golang-8bfbea899d
  • dependabot/go_modules/golang-8c40cefe07
  • dependabot/go_modules/golang-8f3a99df9e
  • dependabot/go_modules/golang-98d539f651
  • dependabot/go_modules/golang-9b7ee4a467
  • dependabot/go_modules/golang-9fbc68838b
  • dependabot/go_modules/golang-a01909eac1
  • dependabot/go_modules/golang-a90ed34d00
  • dependabot/go_modules/golang-ac7443b549
  • dependabot/go_modules/golang-b1fd1a5525
  • dependabot/go_modules/golang-b711640f48
  • dependabot/go_modules/golang-c05031af0a
  • dependabot/go_modules/golang-c722575f0f
  • dependabot/go_modules/golang-cbe0ec1090
  • dependabot/go_modules/golang-db9f2d353e
  • dependabot/go_modules/golang-e423e5d544
  • dependabot/go_modules/golang-e5a06e9046
  • dependabot/go_modules/golang-efff583b38
  • dependabot/go_modules/golang-f04424bbb8
  • dependabot/go_modules/golang-f1c86e0e78
  • dependabot/go_modules/golang-f6d18035b1
  • dependabot/go_modules/golang-fb115483cc
  • dependabot/go_modules/golang-fd31490dbe
  • dependabot/go_modules/golang.org/x/net-0.17.0
  • dependabot/go_modules/golang.org/x/net-0.23.0
  • dependabot/go_modules/golang.org/x/net-0.36.0
  • dependabot/go_modules/golang.org/x/net-0.38.0
  • dependabot/go_modules/golang.org/x/net-0.55.0
  • dependabot/go_modules/golang.org/x/sys-0.10.0
  • dependabot/go_modules/golang.org/x/sys-0.11.0
  • dependabot/go_modules/golang.org/x/sys-0.13.0
  • dependabot/go_modules/golang.org/x/sys-0.4.0
  • dependabot/go_modules/golang.org/x/sys-0.5.0
  • dependabot/go_modules/golang.org/x/sys-0.7.0
  • dependabot/go_modules/golang.org/x/sys-0.8.0
  • dependabot/go_modules/golang.org/x/sys-0.9.0
  • dependabot/go_modules/google.golang.org/grpc-1.56.3
  • dependabot/go_modules/google.golang.org/grpc-1.79.3
  • dependabot/go_modules/google.golang.org/protobuf-1.33.0
  • dhcp-daemon-terminate-iface-nonexist
  • enable-vlan-uplink-interface
  • feature/go_version_bump
  • feature/group-fwd-mask
  • feature/modernize_forvar
  • feature/modernize_update
  • fix
  • fix-bw-nil
  • fix-firewall-ci
  • fix-integ-tests
  • fix-long-hostvethname
  • fix-portmap_nftables
  • fix-unshare
  • fix-windows-ginko
  • fix/portmap
  • fix_bridge_test_linux7
  • fix_dhcp_ipam_release
  • fixdad
  • fixglobalroutes
  • fixvlantrunk
  • fixvrfglobalroutes
  • go-1.25
  • go-mod-separate
  • go-mod-verify
  • go-version
  • go1.24
  • host-device
  • host-device-l3-info
  • increatetimeoutvrf
  • ingress-same-bridge-isolate
  • jell/per_if_sysctl
  • jell/vlan-1
  • jell/vlan-2
  • keeponaddripv6
  • macvlan/stop-setting-proxy-arp
  • main
  • master
  • multiple_routes_same_prefix1
  • new-maintainers
  • oif_rule
  • patch-1
  • pin-actions-to-sha
  • portmap-last-write-wins
  • refs/tags/v0.9.0
  • refs/tags/v0.9.1
  • refs/tags/v1.0.0
  • refs/tags/v1.0.0-rc1
  • refs/tags/v1.0.1
  • refs/tags/v1.1.0
  • refs/tags/v1.1.1
  • refs/tags/v1.2.0
  • refs/tags/v1.4.0
  • refs/tags/v1.4.1
  • refs/tags/v1.5.0
  • refs/tags/v1.5.1
  • release-1.1
  • remove-bryan
  • remove-release-sh2
  • retry
  • revert_c1069bd
  • scorecard
  • setpreservedefaultvlanfalse
  • test-ipam-ecmp1
  • v0.8.2
  • v0.8.3
  • v0.8.4
  • v0.8.5
  • v0.8.6
  • v0.8.7
  • wip-remove-dup
  • xuxiaowei/loong64
  • zerofix

07 Jul 2026 04:18PM UTC coverage: 52.691%. First build
28881576554

Pull #1265

github

twz123
bridge: re-generate a bridge MAC when the kernel has zeroed it out

The kernel zeroes a bridge's MAC address when its last port is removed.
The ensureAddr function pins the bridge's MAC address using the
address read when the bridge was looked up, which is before the veth
is attached. So for an existing bridge that had previously lost all its
ports, the address it tried to pin is all zeros, and pinning an all-zero
address fails with EINVAL.

In fact, this can happen in practice: an ADD that fails has its veth
cleaned up, which, if it was the first ADD, leaves the bridge portless
and hence its MAC zeroed, so the next ADD fails to pin it.

Detect that case and regenerate a random MAC address the same way the
kernel does. This is fine as it only happens if the bridge has no ports,
so no peer can hold stale state about the old address.

Signed-off-by: Tom Wieczorek <twieczorek@mirantis.com>
Pull Request #1265: bridge: reliably pin the MAC on a bridge that lost its ports

27 of 33 new or added lines in 1 file covered. (81.82%)

5033 of 9552 relevant lines covered (52.69%)

29.53 hits per line

Relevant lines Covered
Build:
Build:
9552 RELEVANT LINES 5033 COVERED LINES
29.53 HITS PER LINE
Source Files on bridge-mac-pinning
  • Tree
  • List 69
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28881576554 bridge-mac-pinning bridge: re-generate a bridge MAC when the kernel has zeroed it out The kernel zeroes a bridge's MAC address when its last port is removed. The ensureAddr function pins the bridge's MAC address using the address read when the bridge was looked up,... Pull #1265 07 Jul 2026 05:01PM UTC twz123 github
52.69
27704481435 bridge-mac-pinning bridge: re-generate a bridge MAC when the kernel has zeroed it out The kernel zeroes a bridge's MAC address when its last port is removed. The ensureAddr function pins the bridge's MAC address using the address read when the bridge was looked up,... Pull #1265 17 Jun 2026 04:46PM UTC twz123 github
52.68
See All Builds (1511)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc