Skip to content

Test#36359

Closed
pchaigno wants to merge 5 commits intomainfrom
pr/pchaigno/test-ipv6
Closed

Test#36359
pchaigno wants to merge 5 commits intomainfrom
pr/pchaigno/test-ipv6

Conversation

@pchaigno
Copy link
Copy Markdown
Member

@pchaigno pchaigno commented Dec 4, 2024

TODO:

  • Fix frag in common case.
  • Fix LRP in common case.
  • Fix frag in new case.
  • Fix encryption test v2 in new case.
  • Check L7.
  • Add test case for dual stack.
  • Use new flag.
  • Add tests for new flag.
  • Document new flag.
  • Fix XDP acceleration+egressgw in common case.
  • Reject unsupported features.
  • Fix dual-stack with IPv6 underlay.
  • Fix egressgw in dual-stack with IPv6 underlay
  • Fix IPv6-only + kube-proxy.
  • Fix UDP checksum issue on IPv6 per-packet LB.

@pchaigno pchaigno added the release-note/ci This PR makes changes to the CI. label Dec 4, 2024
@pchaigno pchaigno force-pushed the pr/pchaigno/test-ipv6 branch 21 times, most recently from c6e597b to 1fcd96a Compare December 9, 2024 18:09
@pchaigno pchaigno force-pushed the pr/pchaigno/test-ipv6 branch 2 times, most recently from e39be24 to 24030e6 Compare December 17, 2024 10:04
@pchaigno pchaigno force-pushed the pr/pchaigno/test-ipv6 branch 3 times, most recently from 9b3abdf to fc6df72 Compare January 8, 2025 18:20
@pchaigno pchaigno force-pushed the pr/pchaigno/test-ipv6 branch 3 times, most recently from e3e760b to 5b14953 Compare January 10, 2025 22:20
@pchaigno pchaigno force-pushed the pr/pchaigno/test-ipv6 branch 3 times, most recently from 1643fa8 to 74e04ce Compare February 13, 2025 13:13
@pchaigno pchaigno added feature/ipv6 Relates to IPv6 protocol support feature/ipv6-only Relates to single-stack IPv6 support. labels Feb 13, 2025
@pchaigno pchaigno force-pushed the pr/pchaigno/test-ipv6 branch 15 times, most recently from 1e16c2a to 1cf313b Compare February 20, 2025 20:07
@pchaigno pchaigno force-pushed the pr/pchaigno/test-ipv6 branch from 1cf313b to c40217f Compare February 21, 2025 12:22
@github-actions

This comment was marked as resolved.

pchaigno and others added 5 commits July 2, 2025 11:52
This commit extends our local node logic to return the IPv6 node address
for CiliumEndpoint objects whenever the underlay is set to IPv6. This is
necessary to have the IPv6 address when populating the tunnel endpoint
in the ipcache. Otherwise, on dual-stack clusters, we would always end
up with the IPv4 address in CiliumEndpoints.

Signed-off-by: Paul Chaignon <[email protected]>
The previous commit introduced a Hive dependency loop between the tunnel
package, the node store and the egress gateway manager:

    failed to start: cycle detected in dependency graph: [scope "pprof"]
    func(node.LocalNodeStoreParams) (*node.LocalNodeStore, error) provided by
      "github.com/cilium/cilium/pkg/node".NewLocalNodeStore
      (/go/src/github.com/cilium/cilium/pkg/node/local_node_store.go:110)
        depends on func(cmd.localNodeSynchronizerParams)
          node.LocalNodeSynchronizer provided by
          "github.com/cilium/cilium/daemon/cmd".newLocalNodeSynchronizer
          (/go/src/github.com/cilium/cilium/daemon/cmd/local_node_sync.go:97)
        depends on func(tunnel.newConfigIn) (tunnel.Config, error) provided by
          "github.com/cilium/cilium/pkg/datapath/tunnel".newConfig
          (/go/src/github.com/cilium/cilium/pkg/datapath/tunnel/tunnel.go:83)
        depends on func(egressgateway.Params)
          (struct {
            dig.Out;
            *egressgateway.Manager;
            defines.NodeOut;
            tunnel.EnablerOut
          }, error) provided by
          "github.com/cilium/cilium/pkg/egressgateway".NewEgressGatewayManager
          (/go/src/github.com/cilium/cilium/pkg/egressgateway/manager.go:165)
        depends on func(identitycachecell.identityAllocatorParams)
          identitycachecell.identityAllocatorOut provided by
          "github.com/cilium/cilium/pkg/identity/cache/cell".newIdentityAllocator
          (/go/src/github.com/cilium/cilium/pkg/identity/cache/cell/cell.go:111)
        depends on func(endpointmanager.endpointManagerParams)
          endpointmanager.endpointManagerOut provided by
          "github.com/cilium/cilium/pkg/endpointmanager".newDefaultEndpointManager
          (/go/src/github.com/cilium/cilium/pkg/endpointmanager/cell.go:228)
        depends on func(node.LocalNodeStoreParams) (*node.LocalNodeStore, error)
          provided by "github.com/cilium/cilium/pkg/node".NewLocalNodeStore
          (/go/src/github.com/cilium/cilium/pkg/node/local_node_store.go:110)

This commit works around the dependency loop.

Co-authored-by: Marco Iorio <[email protected]>
Signed-off-by: Paul Chaignon <[email protected]>
Commit 7cc1d53 ("mtu: Support tunneling over IPv6 in calculations")
adjusted the MTU calculation to take IPv6 underlays into account. But
because this commit was written before the underlay-protocol flag was
introduced, it simply assumed that we're in IPv6 underlay mode if
tunneling is enabled but IPv4 isn't.

That however doesn't work for dual-stack clusters with IPv6 underlay.
The present commit fixes it to use the underlay-protocol flag.

Fixes: 7cc1d53 ("mtu: Support tunneling over IPv6 in calculations")
Signed-off-by: Paul Chaignon <[email protected]>
This commit switches one of the existing dual-stack configuration to use
an IPv6 underlay, to test subsequent changes in dual-stack mode (where
we can run more connectivity tests).

Signed-off-by: Paul Chaignon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature/ipv6-only Relates to single-stack IPv6 support. feature/ipv6 Relates to IPv6 protocol support release-note/ci This PR makes changes to the CI.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant