treewide: move //net to //osbase/net

The net package contains the utility to dump a network configuration in
proto format. It should be in osbase.

Change-Id: I4d25d9c7d600f4a04b9b79bd1ba98286bf9daec3
Reviewed-on: https://review.monogon.dev/c/monogon/+/3313
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/cloud/agent/BUILD.bazel b/cloud/agent/BUILD.bazel
index dd54619..2574ad4 100644
--- a/cloud/agent/BUILD.bazel
+++ b/cloud/agent/BUILD.bazel
@@ -18,12 +18,12 @@
         "//cloud/bmaas/server/api",
         "//metropolis/node/core/devmgr",
         "//metropolis/node/core/network",
-        "//net/proto",
         "//osbase/blockdev",
         "//osbase/bootparam",
         "//osbase/build/mkimage/osimage",
         "//osbase/efivarfs",
         "//osbase/logtree",
+        "//osbase/net/proto",
         "//osbase/nvme",
         "//osbase/pki",
         "//osbase/scsi",
diff --git a/cloud/agent/api/BUILD.bazel b/cloud/agent/api/BUILD.bazel
index 77dfa4b..ba31094 100644
--- a/cloud/agent/api/BUILD.bazel
+++ b/cloud/agent/api/BUILD.bazel
@@ -10,7 +10,7 @@
         "takeover.proto",
     ],
     visibility = ["//visibility:public"],
-    deps = ["//net/proto:net_proto_proto"],
+    deps = ["//osbase/net/proto:net_proto_proto"],
 )
 
 go_proto_library(
@@ -18,7 +18,7 @@
     importpath = "source.monogon.dev/cloud/agent/api",
     proto = ":api_proto",
     visibility = ["//visibility:public"],
-    deps = ["//net/proto"],
+    deps = ["//osbase/net/proto"],
 )
 
 go_library(
diff --git a/cloud/agent/api/agent.proto b/cloud/agent/api/agent.proto
index fda4e64..c2ac0f7 100644
--- a/cloud/agent/api/agent.proto
+++ b/cloud/agent/api/agent.proto
@@ -1,6 +1,6 @@
 syntax = "proto3";
 package cloud.agent.api;
-import "net/proto/net.proto";
+import "osbase/net/proto/net.proto";
 import "cloud/agent/api/takeover.proto";
 option go_package = "source.monogon.dev/cloud/agent/api";
 
@@ -14,5 +14,5 @@
   bytes private_key = 2;
   // A network configuration in case automatic configuration does not work or is
   // not desired. If left unset, automatic configuration is used.
-  net.proto.Net network_config = 3;
+  osbase.net.proto.Net network_config = 3;
 }
\ No newline at end of file
diff --git a/cloud/agent/install.go b/cloud/agent/install.go
index 2eaeeb3..7752517 100644
--- a/cloud/agent/install.go
+++ b/cloud/agent/install.go
@@ -14,11 +14,11 @@
 	"google.golang.org/protobuf/proto"
 
 	bpb "source.monogon.dev/cloud/bmaas/server/api"
-	npb "source.monogon.dev/net/proto"
 	"source.monogon.dev/osbase/blockdev"
 	"source.monogon.dev/osbase/build/mkimage/osimage"
 	"source.monogon.dev/osbase/efivarfs"
 	"source.monogon.dev/osbase/logtree"
+	npb "source.monogon.dev/osbase/net/proto"
 )
 
 //go:embed metropolis/node/core/abloader/abloader_bin.efi
diff --git a/cloud/agent/takeover/BUILD.bazel b/cloud/agent/takeover/BUILD.bazel
index 914fc9a..2a32e01 100644
--- a/cloud/agent/takeover/BUILD.bazel
+++ b/cloud/agent/takeover/BUILD.bazel
@@ -16,10 +16,10 @@
     visibility = ["//visibility:private"],
     deps = [
         "//cloud/agent/api",
-        "//net/dump",
-        "//net/proto",
         "//osbase/bootparam",
         "//osbase/kexec",
+        "//osbase/net/dump",
+        "//osbase/net/proto",
         "@com_github_cavaliergopher_cpio//:cpio",
         "@com_github_klauspost_compress//zstd",
         "@org_golang_google_protobuf//proto",
diff --git a/cloud/agent/takeover/takeover.go b/cloud/agent/takeover/takeover.go
index ffc3a6e..bf7760c 100644
--- a/cloud/agent/takeover/takeover.go
+++ b/cloud/agent/takeover/takeover.go
@@ -32,10 +32,10 @@
 	"google.golang.org/protobuf/proto"
 
 	"source.monogon.dev/cloud/agent/api"
-	netdump "source.monogon.dev/net/dump"
-	netapi "source.monogon.dev/net/proto"
 	"source.monogon.dev/osbase/bootparam"
 	"source.monogon.dev/osbase/kexec"
+	netdump "source.monogon.dev/osbase/net/dump"
+	netapi "source.monogon.dev/osbase/net/proto"
 )
 
 //go:embed third_party/linux/bzImage
diff --git a/metropolis/node/core/localstorage/BUILD.bazel b/metropolis/node/core/localstorage/BUILD.bazel
index 4249297..29e7696 100644
--- a/metropolis/node/core/localstorage/BUILD.bazel
+++ b/metropolis/node/core/localstorage/BUILD.bazel
@@ -18,7 +18,7 @@
         "//metropolis/proto/api",
         "//metropolis/proto/common",
         "//metropolis/proto/private",
-        "//net/proto",
+        "//osbase/net/proto",
         "//osbase/tpm",
         "@org_golang_google_protobuf//proto",
         "@org_golang_x_sys//unix",
diff --git a/metropolis/node/core/localstorage/storage_esp.go b/metropolis/node/core/localstorage/storage_esp.go
index 8fc71d0..fd6913a 100644
--- a/metropolis/node/core/localstorage/storage_esp.go
+++ b/metropolis/node/core/localstorage/storage_esp.go
@@ -27,7 +27,7 @@
 	apb "source.monogon.dev/metropolis/proto/api"
 	cpb "source.monogon.dev/metropolis/proto/common"
 	ppb "source.monogon.dev/metropolis/proto/private"
-	npb "source.monogon.dev/net/proto"
+	npb "source.monogon.dev/osbase/net/proto"
 	"source.monogon.dev/osbase/tpm"
 )
 
diff --git a/metropolis/node/core/network/BUILD.bazel b/metropolis/node/core/network/BUILD.bazel
index 614e0dc..8ef2e6c 100644
--- a/metropolis/node/core/network/BUILD.bazel
+++ b/metropolis/node/core/network/BUILD.bazel
@@ -14,11 +14,11 @@
         "//go/algorithm/toposort",
         "//metropolis/node/core/network/dhcp4c",
         "//metropolis/node/core/network/dhcp4c/callback",
-        "//net/proto",
         "//osbase/event/memory",
         "//osbase/logtree",
         "//osbase/net/dns",
         "//osbase/net/dns/forward",
+        "//osbase/net/proto",
         "//osbase/supervisor",
         "//osbase/sysctl",
         "@com_github_google_nftables//:nftables",
diff --git a/metropolis/node/core/network/main.go b/metropolis/node/core/network/main.go
index 06b443a..e51ed11 100644
--- a/metropolis/node/core/network/main.go
+++ b/metropolis/node/core/network/main.go
@@ -36,7 +36,7 @@
 	"source.monogon.dev/osbase/supervisor"
 	"source.monogon.dev/osbase/sysctl"
 
-	netpb "source.monogon.dev/net/proto"
+	netpb "source.monogon.dev/osbase/net/proto"
 )
 
 // Service is the network service for this node. It maintains all
diff --git a/metropolis/node/core/network/static.go b/metropolis/node/core/network/static.go
index 5afefdf..86c45f6 100644
--- a/metropolis/node/core/network/static.go
+++ b/metropolis/node/core/network/static.go
@@ -22,7 +22,7 @@
 	"source.monogon.dev/osbase/supervisor"
 	"source.monogon.dev/osbase/sysctl"
 
-	netpb "source.monogon.dev/net/proto"
+	netpb "source.monogon.dev/osbase/net/proto"
 )
 
 var vlanProtoMap = map[netpb.VLAN_Protocol]netlink.VlanProtocol{
diff --git a/metropolis/proto/api/BUILD.bazel b/metropolis/proto/api/BUILD.bazel
index 82aa60b..f90885a 100644
--- a/metropolis/proto/api/BUILD.bazel
+++ b/metropolis/proto/api/BUILD.bazel
@@ -14,8 +14,8 @@
     deps = [
         "//metropolis/proto/common:common_proto",
         "//metropolis/proto/ext:ext_proto",
-        "//net/proto:net_proto_proto",
         "//osbase/logtree/proto:proto_proto",
+        "//osbase/net/proto:net_proto_proto",
         "@protobuf//:duration_proto",
     ],
 )
@@ -29,8 +29,8 @@
     deps = [
         "//metropolis/proto/common",
         "//metropolis/proto/ext",
-        "//net/proto",
         "//osbase/logtree/proto",
+        "//osbase/net/proto",
     ],
 )
 
diff --git a/metropolis/proto/api/configuration.proto b/metropolis/proto/api/configuration.proto
index ba8a7f3..e7fc38c 100644
--- a/metropolis/proto/api/configuration.proto
+++ b/metropolis/proto/api/configuration.proto
@@ -19,7 +19,7 @@
 option go_package = "source.monogon.dev/metropolis/proto/api";
 
 import "metropolis/proto/common/common.proto";
-import "net/proto/net.proto";
+import "osbase/net/proto/net.proto";
 
 // NodeParameters is the data with which a Node is set booted. It contains the
 // configuration required for a node to either bootstrap a new cluster, or
@@ -81,5 +81,5 @@
 
     // Optional network configuration when autoconfiguration is not possible or
     // desirable. If unset, autoconfiguration (ie. DHCP) is used.
-    net.proto.Net network_config = 4;
+    osbase.net.proto.Net network_config = 4;
 }
diff --git a/net/README.md b/net/README.md
deleted file mode 100644
index 295085c..0000000
--- a/net/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# `//net`
-
-API definitions and tooling for Monogon OS network definitions. It currently happens to live at the top level because it is shared between //cloud and //metropolis, we should find a more sensible place for it.
diff --git a/net/dump/BUILD.bazel b/osbase/net/dump/BUILD.bazel
similarity index 78%
rename from net/dump/BUILD.bazel
rename to osbase/net/dump/BUILD.bazel
index 59a8707..3175e4e 100644
--- a/net/dump/BUILD.bazel
+++ b/osbase/net/dump/BUILD.bazel
@@ -6,10 +6,10 @@
         "hwaddr_compat.go",
         "netdump.go",
     ],
-    importpath = "source.monogon.dev/net/dump",
+    importpath = "source.monogon.dev/osbase/net/dump",
     visibility = ["//visibility:public"],
     deps = [
-        "//net/proto",
+        "//osbase/net/proto",
         "@com_github_vishvananda_netlink//:netlink",
         "@org_golang_x_sys//unix",
     ],
diff --git a/net/dump/cli/BUILD.bazel b/osbase/net/dump/cli/BUILD.bazel
similarity index 79%
rename from net/dump/cli/BUILD.bazel
rename to osbase/net/dump/cli/BUILD.bazel
index 287ad52..acd4bdb 100644
--- a/net/dump/cli/BUILD.bazel
+++ b/osbase/net/dump/cli/BUILD.bazel
@@ -3,10 +3,10 @@
 go_library(
     name = "cli_lib",
     srcs = ["main.go"],
-    importpath = "source.monogon.dev/net/dump/cli",
+    importpath = "source.monogon.dev/osbase/net/dump/cli",
     visibility = ["//visibility:private"],
     deps = [
-        "//net/dump",
+        "//osbase/net/dump",
         "@org_golang_google_protobuf//encoding/prototext",
     ],
 )
diff --git a/net/dump/cli/main.go b/osbase/net/dump/cli/main.go
similarity index 84%
rename from net/dump/cli/main.go
rename to osbase/net/dump/cli/main.go
index 2ad76e9..c2de81a 100644
--- a/net/dump/cli/main.go
+++ b/osbase/net/dump/cli/main.go
@@ -6,7 +6,7 @@
 
 	"google.golang.org/protobuf/encoding/prototext"
 
-	netdump "source.monogon.dev/net/dump"
+	netdump "source.monogon.dev/osbase/net/dump"
 )
 
 func main() {
diff --git a/net/dump/hwaddr_compat.go b/osbase/net/dump/hwaddr_compat.go
similarity index 100%
rename from net/dump/hwaddr_compat.go
rename to osbase/net/dump/hwaddr_compat.go
diff --git a/net/dump/netdump.go b/osbase/net/dump/netdump.go
similarity index 98%
rename from net/dump/netdump.go
rename to osbase/net/dump/netdump.go
index 31ac044..a7d8023 100644
--- a/net/dump/netdump.go
+++ b/osbase/net/dump/netdump.go
@@ -12,7 +12,7 @@
 	"github.com/vishvananda/netlink"
 	"golang.org/x/sys/unix"
 
-	netapi "source.monogon.dev/net/proto"
+	netapi "source.monogon.dev/osbase/net/proto"
 )
 
 var vlanProtoMap = map[netlink.VlanProtocol]netapi.VLAN_Protocol{
@@ -29,7 +29,7 @@
 )
 
 // Dump dumps the network configuration of the current network namespace into
-// a net.proto.Net structure. This is currently only expected to work for
+// a osbase.net.proto.Net structure. This is currently only expected to work for
 // systems which do not use a dynamic routing protocol to establish basic
 // internet connectivity.
 // The second return value is a list of warnings, i.e. things which might be
diff --git a/net/proto/BUILD.bazel b/osbase/net/proto/BUILD.bazel
similarity index 82%
rename from net/proto/BUILD.bazel
rename to osbase/net/proto/BUILD.bazel
index a814a9c..cdc115e 100644
--- a/net/proto/BUILD.bazel
+++ b/osbase/net/proto/BUILD.bazel
@@ -10,7 +10,7 @@
 
 go_proto_library(
     name = "net_proto_go_proto",
-    importpath = "source.monogon.dev/net/proto",
+    importpath = "source.monogon.dev/osbase/net/proto",
     proto = ":net_proto_proto",
     visibility = ["//visibility:public"],
 )
@@ -18,6 +18,6 @@
 go_library(
     name = "proto",
     embed = [":net_proto_go_proto"],
-    importpath = "source.monogon.dev/net/proto",
+    importpath = "source.monogon.dev/osbase/net/proto",
     visibility = ["//visibility:public"],
 )
diff --git a/net/proto/gomod-generated-placeholder.go b/osbase/net/proto/gomod-generated-placeholder.go
similarity index 100%
rename from net/proto/gomod-generated-placeholder.go
rename to osbase/net/proto/gomod-generated-placeholder.go
diff --git a/net/proto/net.proto b/osbase/net/proto/net.proto
similarity index 98%
rename from net/proto/net.proto
rename to osbase/net/proto/net.proto
index b8e29db..1fd46aa 100644
--- a/net/proto/net.proto
+++ b/osbase/net/proto/net.proto
@@ -6,8 +6,8 @@
 // configuration information needs to be provided to non-Monogon systems.
 // It's kept human-readable as it may be written by humans directly when
 // configuring Monogon systems.
-package net.proto;
-option go_package = "source.monogon.dev/net/proto";
+package osbase.net.proto;
+option go_package = "source.monogon.dev/osbase/net/proto";
 
 // Device references one or more network adapters, i.e. network devices which
 // connect this kernel to an outside system.