Skip to content

bridge: fix IPv6 address order assumption in test#1260

Open
yushoyamaguchi wants to merge 1 commit into
containernetworking:mainfrom
yushoyamaguchi:fix_bridge_test_linux7
Open

bridge: fix IPv6 address order assumption in test#1260
yushoyamaguchi wants to merge 1 commit into
containernetworking:mainfrom
yushoyamaguchi:fix_bridge_test_linux7

Conversation

@yushoyamaguchi
Copy link
Copy Markdown
Contributor

@yushoyamaguchi yushoyamaguchi commented May 23, 2026

Summary

  • checkBridgeIPs in the "ensure bridge address" test assumed that AddrList returns same-scope IPv6 addresses in reverse insertion order (newest first), and checked addrs[0]/addrs[1] by index.
  • Replace index-based checks with Gomega's ContainElement so the test verifies presence of both addresses without assuming order.

Root cause

Linux kernel v7.0 changed the insertion order for same-scope IPv6 addresses in ipv6_link_dev_addr .
torvalds/linux@cb3de96eea66

Our test was written against v6.x prepend behavior and passed in CI (which runs on a v6.x kernel).
On v7.0+ kernels, AddrList returns addresses in insertion order, causing the index-based checks to fail.

Linux kernel v7.0 changed same-scope IPv6 address insertion from
prepend to append (torvalds/linux@cb3de96eea66),
causing AddrList to return addresses in insertion order rather than
reverse order. Replace index-based checks in checkBridgeIPs with
ContainElement to make the test order-independent.

Signed-off-by: Yusho Yamaguchi <ys-yamaguchi@kddi.com>
@yushoyamaguchi
Copy link
Copy Markdown
Contributor Author

The result of the test in kernel v7.0

ubuntu@yamaguchi-cilium-dev:~/yusho/cni-plugins$ uname -r
7.0.0-14-generic
ubuntu@yamaguchi-cilium-dev:~/yusho/cni-plugins$ sudo go test ./plugins/main/bridge/ --ginkgo.focus="ensure bridge address" -v
=== RUN   TestBridge
Running Suite: plugins/main/bridge - /home/ubuntu/yusho/cni-plugins/plugins/main/bridge
=======================================================================================
Random Seed: 1779542981

Will run 21 of 317 specs
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS••
------------------------------
• [FAILED] [0.007 seconds]
bridge Operations [It] [0.1.0] (2) ensure bridge address
/home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2222

  [FAILED] Expected
      <string>: 2001:db8:1:2::1/64
  to equal
      <string>: fd00:1234::1/64
  In [It] at: /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259 @ 05/23/26 13:29:41.685
------------------------------
••
------------------------------
• [FAILED] [0.004 seconds]
bridge Operations [It] [0.2.0] (2) ensure bridge address
/home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2222

  [FAILED] Expected
      <string>: 2001:db8:1:2::1/64
  to equal
      <string>: fd00:1234::1/64
  In [It] at: /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259 @ 05/23/26 13:29:41.706
------------------------------
••
------------------------------
• [FAILED] [0.003 seconds]
bridge Operations [It] [0.3.0] (2) ensure bridge address
/home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2222

  [FAILED] Expected
      <string>: 2001:db8:1:2::1/64
  to equal
      <string>: fd00:1234::1/64
  In [It] at: /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259 @ 05/23/26 13:29:41.715
------------------------------
••
------------------------------
• [FAILED] [0.003 seconds]
bridge Operations [It] [0.3.1] (2) ensure bridge address
/home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2222

  [FAILED] Expected
      <string>: 2001:db8:1:2::1/64
  to equal
      <string>: fd00:1234::1/64
  In [It] at: /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259 @ 05/23/26 13:29:41.724
------------------------------
••
------------------------------
• [FAILED] [0.006 seconds]
bridge Operations [It] [0.4.0] (2) ensure bridge address
/home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2222

  [FAILED] Expected
      <string>: 2001:db8:1:2::1/64
  to equal
      <string>: fd00:1234::1/64
  In [It] at: /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259 @ 05/23/26 13:29:41.804
------------------------------
••
------------------------------
• [FAILED] [0.004 seconds]
bridge Operations [It] [1.0.0] (2) ensure bridge address
/home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2222

  [FAILED] Expected
      <string>: 2001:db8:1:2::1/64
  to equal
      <string>: fd00:1234::1/64
  In [It] at: /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259 @ 05/23/26 13:29:41.825
------------------------------
••
------------------------------
• [FAILED] [0.003 seconds]
bridge Operations [It] [1.1.0] (2) ensure bridge address
/home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2222

  [FAILED] Expected
      <string>: 2001:db8:1:2::1/64
  to equal
      <string>: fd00:1234::1/64
  In [It] at: /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259 @ 05/23/26 13:29:41.836
------------------------------
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

Summarizing 7 Failures:
  [FAIL] bridge Operations [It] [0.1.0] (2) ensure bridge address
  /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259
  [FAIL] bridge Operations [It] [0.2.0] (2) ensure bridge address
  /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259
  [FAIL] bridge Operations [It] [0.3.0] (2) ensure bridge address
  /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259
  [FAIL] bridge Operations [It] [0.3.1] (2) ensure bridge address
  /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259
  [FAIL] bridge Operations [It] [0.4.0] (2) ensure bridge address
  /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259
  [FAIL] bridge Operations [It] [1.0.0] (2) ensure bridge address
  /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259
  [FAIL] bridge Operations [It] [1.1.0] (2) ensure bridge address
  /home/ubuntu/yusho/cni-plugins/plugins/main/bridge/bridge_test.go:2259

Ran 21 of 317 Specs in 0.187 seconds
FAIL! -- 14 Passed | 7 Failed | 0 Pending | 296 Skipped
--- FAIL: TestBridge (0.20s)
FAIL
FAIL    github.com/containernetworking/plugins/plugins/main/bridge      0.201s
FAIL

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.

1 participant