From 568dfc0d0a50d7681981cb37e531bd49d9238679 Mon Sep 17 00:00:00 2001 From: Jordi Subira Nieto Date: Fri, 10 May 2024 14:51:02 +0200 Subject: [PATCH] fix rebase --- acceptance/topo_cs_reload/BUILD.bazel | 26 ------------------- acceptance/topo_cs_reload/docker-compose.yml | 14 ---------- acceptance/topo_cs_reload/reload_test.go | 4 --- acceptance/topo_daemon_reload/BUILD.bazel | 26 ------------------- .../topo_daemon_reload/docker-compose.yml | 8 ------ acceptance/topo_daemon_reload/reload_test.go | 6 +---- control/cmd/control/main.go | 6 ++--- pkg/daemon/daemon.go | 4 +-- pkg/daemon/grpc.go | 7 ++--- pkg/snet/packet_conn.go | 10 ++++--- pkg/snet/snet.go | 3 ++- router/connector.go | 8 +++--- 12 files changed, 24 insertions(+), 98 deletions(-) diff --git a/acceptance/topo_cs_reload/BUILD.bazel b/acceptance/topo_cs_reload/BUILD.bazel index 3fd72192ed..411df00ee9 100644 --- a/acceptance/topo_cs_reload/BUILD.bazel +++ b/acceptance/topo_cs_reload/BUILD.bazel @@ -35,32 +35,6 @@ go_test( ], ) -# dispatcher container -oci_tarball( - name = "dispatcher.tar", - format = "docker", - image = ":dispatcher_image", - repo_tags = ["scion/" + package_name() + ":dispatcher"], -) - -oci_image( - name = "dispatcher_image", - base = "//docker:dispatcher", - cmd = [ - "--config", - "/disp.toml", - ], - entrypoint = ["/app/dispatcher"], - tars = [ - ":dispatcher_data", - ], -) - -pkg_tar( - name = "dispatcher_data", - srcs = ["testdata/disp.toml"], -) - # control container oci_tarball( name = "control.tar", diff --git a/acceptance/topo_cs_reload/docker-compose.yml b/acceptance/topo_cs_reload/docker-compose.yml index dae72004a6..4b99195829 100644 --- a/acceptance/topo_cs_reload/docker-compose.yml +++ b/acceptance/topo_cs_reload/docker-compose.yml @@ -7,22 +7,8 @@ networks: config: - subnet: 242.253.100.0/24 services: -<<<<<<< HEAD - topo_cs_reload_dispatcher: - image: scion/acceptance/topo_cs_reload:dispatcher - networks: - bridge1: - ipv4_address: 242.253.100.2 - volumes: - - vol_topo_cs_reload_disp:/run/shm/dispatcher:rw topo_cs_reload_control_srv: image: scion/acceptance/topo_cs_reload:control - depends_on: - - topo_cs_reload_dispatcher -======= - topo_cs_reload_control_srv: - image: bazel/acceptance/topo_cs_reload:control ->>>>>>> 6b820ef10 (change last-mile router port forwarding) volumes: - "${TOPO_CS_RELOAD_CONFIG_DIR}/certs:/certs:ro" - "${TOPO_CS_RELOAD_CONFIG_DIR}/keys:/keys:ro" diff --git a/acceptance/topo_cs_reload/reload_test.go b/acceptance/topo_cs_reload/reload_test.go index a52b75171f..eba08eb18c 100644 --- a/acceptance/topo_cs_reload/reload_test.go +++ b/acceptance/topo_cs_reload/reload_test.go @@ -100,10 +100,6 @@ func setupTest(t *testing.T) testState { s.mustExec(t, "tar", "-xf", "crypto.tar", "-C", tmpDir) // first load the docker images from bazel into the docker deamon, the // tars are in the same folder as this test runs in bazel. - s.mustExec(t, "docker", "image", "load", "-i", "dispatcher.tar/tarball.tar") - t.Cleanup(func() { - s.mustExec(t, "docker", "image", "rm", "scion/acceptance/topo_cs_reload:dispatcher") - }) s.mustExec(t, "docker", "image", "load", "-i", "control.tar/tarball.tar") t.Cleanup(func() { s.mustExec(t, "docker", "image", "rm", "scion/acceptance/topo_cs_reload:control") diff --git a/acceptance/topo_daemon_reload/BUILD.bazel b/acceptance/topo_daemon_reload/BUILD.bazel index 106c212f00..71df628af9 100644 --- a/acceptance/topo_daemon_reload/BUILD.bazel +++ b/acceptance/topo_daemon_reload/BUILD.bazel @@ -23,32 +23,6 @@ go_test( ], ) -# dispatcher container -oci_tarball( - name = "dispatcher.tar", - format = "docker", - image = ":dispatcher_image", - repo_tags = ["scion/" + package_name() + ":dispatcher"], -) - -oci_image( - name = "dispatcher_image", - base = "//docker:dispatcher", - cmd = [ - "--config", - "/disp.toml", - ], - entrypoint = ["/app/dispatcher"], - tars = [ - ":dispatcher_data", - ], -) - -pkg_tar( - name = "dispatcher_data", - srcs = ["testdata/disp.toml"], -) - # daemon container oci_tarball( name = "daemon.tar", diff --git a/acceptance/topo_daemon_reload/docker-compose.yml b/acceptance/topo_daemon_reload/docker-compose.yml index b2898fb600..ade1eb5f32 100644 --- a/acceptance/topo_daemon_reload/docker-compose.yml +++ b/acceptance/topo_daemon_reload/docker-compose.yml @@ -7,14 +7,6 @@ networks: config: - subnet: 242.254.100.0/24 services: - topo_daemon_reload_dispatcher: - container_name: topo_daemon_reload_dispatcher - image: scion/acceptance/topo_daemon_reload:dispatcher - networks: - bridge1: - ipv4_address: 242.254.100.2 - volumes: - - vol_topo_daemon_reload_disp:/run/shm/dispatcher:rw topo_daemon_reload_daemon: container_name: topo_daemon_reload_daemon image: scion/acceptance/topo_daemon_reload:daemon diff --git a/acceptance/topo_daemon_reload/reload_test.go b/acceptance/topo_daemon_reload/reload_test.go index c55d525dbf..171d61eeb9 100644 --- a/acceptance/topo_daemon_reload/reload_test.go +++ b/acceptance/topo_daemon_reload/reload_test.go @@ -68,17 +68,13 @@ func TestSDTopoReload(t *testing.T) { func setupTest(t *testing.T) { // first load the docker images from bazel into the docker deamon, the // tars are in the same folder as this test runs in bazel. - mustExec(t, "docker", "image", "load", "-i", "dispatcher.tar/tarball.tar") - t.Cleanup(func() { - mustExec(t, "docker", "image", "rm", "scion/acceptance/topo_daemon_reload:dispatcher") - }) mustExec(t, "docker", "image", "load", "-i", "daemon.tar/tarball.tar") t.Cleanup(func() { mustExec(t, "docker", "image", "rm", "scion/acceptance/topo_daemon_reload:daemon") }) // now start the docker containers mustExec(t, "docker", "compose", "-f", "docker-compose.yml", - "up", "-d", "topo_daemon_reload_dispatcher", "topo_daemon_reload_daemon") + "up", "-d", "topo_daemon_reload_daemon") t.Cleanup(func() { mustExec(t, "docker", "compose", "-f", "docker-compose.yml", "down", "-v") }) // wait a bit to make sure the containers are ready. time.Sleep(time.Second / 2) diff --git a/control/cmd/control/main.go b/control/cmd/control/main.go index 80b3650bb1..7b36a7e28d 100644 --- a/control/cmd/control/main.go +++ b/control/cmd/control/main.go @@ -19,9 +19,9 @@ import ( "crypto/x509" "encoding/json" "errors" - "net" "net/http" _ "net/http/pprof" + "net/netip" "path/filepath" "strings" "sync" @@ -948,9 +948,9 @@ func (c cpInfoProvider) PortRange(_ context.Context) (uint16, uint16, error) { return start, end, nil } -func (c cpInfoProvider) Interfaces(_ context.Context) (map[uint16]*net.UDPAddr, error) { +func (c cpInfoProvider) Interfaces(_ context.Context) (map[uint16]netip.AddrPort, error) { ifMap := c.topo.InterfaceInfoMap() - ifsToUDP := make(map[uint16]*net.UDPAddr, len(ifMap)) + ifsToUDP := make(map[uint16]netip.AddrPort, len(ifMap)) for i, v := range ifMap { if i > (1<<16)-1 { return nil, serrors.New("invalid interface id", "id", i) diff --git a/pkg/daemon/daemon.go b/pkg/daemon/daemon.go index caccef3387..a9ba3397ee 100644 --- a/pkg/daemon/daemon.go +++ b/pkg/daemon/daemon.go @@ -18,7 +18,7 @@ package daemon import ( "context" - "net" + "net/netip" "github.com/scionproto/scion/pkg/addr" "github.com/scionproto/scion/pkg/daemon/internal/metrics" @@ -68,7 +68,7 @@ type Connector interface { // for the local IA. PortRange(ctx context.Context) (uint16, uint16, error) // Interfaces returns the map of interface identifiers to the underlay internal address. - Interfaces(ctx context.Context) (map[uint16]*net.UDPAddr, error) + Interfaces(ctx context.Context) (map[uint16]netip.AddrPort, error) // Paths requests from the daemon a set of end to end paths between the source and destination. Paths(ctx context.Context, dst, src addr.IA, f PathReqFlags) ([]snet.Path, error) // ASInfo requests from the daemon information about AS ia, the zero IA can be diff --git a/pkg/daemon/grpc.go b/pkg/daemon/grpc.go index 30c34aba13..4cbec6036c 100644 --- a/pkg/daemon/grpc.go +++ b/pkg/daemon/grpc.go @@ -17,6 +17,7 @@ package daemon import ( "context" "net" + "net/netip" "time" "google.golang.org/grpc" @@ -84,16 +85,16 @@ func (c grpcConn) PortRange(ctx context.Context) (uint16, uint16, error) { return uint16(response.DispatchedPortStart), uint16(response.DispatchedPortEnd), nil } -func (c grpcConn) Interfaces(ctx context.Context) (map[uint16]*net.UDPAddr, error) { +func (c grpcConn) Interfaces(ctx context.Context) (map[uint16]netip.AddrPort, error) { client := sdpb.NewDaemonServiceClient(c.conn) response, err := client.Interfaces(ctx, &sdpb.InterfacesRequest{}) if err != nil { c.metrics.incInterface(err) return nil, err } - result := make(map[uint16]*net.UDPAddr) + result := make(map[uint16]netip.AddrPort, len(response.Interfaces)) for ifID, intf := range response.Interfaces { - a, err := net.ResolveUDPAddr("udp", intf.Address.Address) + a, err := netip.ParseAddrPort(intf.Address.Address) if err != nil { c.metrics.incInterface(err) return nil, serrors.WrapStr("parsing reply", err, "raw_uri", intf.Address.Address) diff --git a/pkg/snet/packet_conn.go b/pkg/snet/packet_conn.go index 9a80d4fc76..c2100713dc 100644 --- a/pkg/snet/packet_conn.go +++ b/pkg/snet/packet_conn.go @@ -16,6 +16,7 @@ package snet import ( "net" + "net/netip" "syscall" "time" @@ -342,12 +343,15 @@ type SerializationOptions struct { InitializePaths bool } -type interfaceMap map[uint16]*net.UDPAddr +type interfaceMap map[uint16]netip.AddrPort func (m interfaceMap) get(id uint16) (*net.UDPAddr, error) { - addr, ok := m[id] + addrPort, ok := m[id] if !ok { return nil, serrors.New("interface number not found", "interface", id) } - return addr, nil + return &net.UDPAddr{ + IP: addrPort.Addr().AsSlice(), + Port: int(addrPort.Port()), + }, nil } diff --git a/pkg/snet/snet.go b/pkg/snet/snet.go index 8a4150c4dd..b355a258db 100644 --- a/pkg/snet/snet.go +++ b/pkg/snet/snet.go @@ -40,6 +40,7 @@ import ( "context" "errors" "net" + "net/netip" "syscall" "github.com/scionproto/scion/pkg/addr" @@ -52,7 +53,7 @@ import ( type Topology interface { LocalIA(ctx context.Context) (addr.IA, error) PortRange(ctx context.Context) (uint16, uint16, error) - Interfaces(ctx context.Context) (map[uint16]*net.UDPAddr, error) + Interfaces(ctx context.Context) (map[uint16]netip.AddrPort, error) } var _ Network = (*SCIONNetwork)(nil) diff --git a/router/connector.go b/router/connector.go index e26d147c83..e3d205287f 100644 --- a/router/connector.go +++ b/router/connector.go @@ -39,9 +39,9 @@ type Connector struct { externalInterfaces map[uint16]control.ExternalInterface siblingInterfaces map[uint16]control.SiblingInterface - ReceiveBufferSize int - SendBufferSize int - BFD config.BFD + ReceiveBufferSize int + SendBufferSize int + BFD config.BFD DispatchedPortStart *int DispatchedPortEnd *int } @@ -232,6 +232,8 @@ func (c *Connector) applyBFDDefaults(cfg control.BFD) control.BFD { cfg.RequiredMinRxInterval = c.BFD.RequiredMinRxInterval.Duration } return cfg +} + func (c *Connector) SetPortRange(start, end uint16) { c.mtx.Lock() defer c.mtx.Unlock()