You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/ipn/ipnlocal
M. J. Fromberger 9385dfe7f6
ipn/ipnlocal/netmapcache: add a package to split and cache network maps (#18497)
This commit is based on part of #17925, reworked as a separate package.

Add a package that can store and load netmap.NetworkMap values in persistent
storage, using a basic columnar representation. This commit includes a default
storage interface based on plain files, but the interface can be implemented
with more structured storage if we want to later.

The tests are set up to require that all the fields of the NetworkMap are
handled, except those explicitly designated as not-cached, and check that a
fully-populated value can round-trip correctly through the cache.  Adding or
removing fields, either in the NetworkMap or in the cached representation, will
trigger either build failures (e.g., for type mismatch) or test failures (e.g.,
for representation changes or missing fields). This isn't quite as nice as
automatically updating the representation, which I also prototyped, but is much
simpler to maintain and less code.

This commit does not yet hook up the cache to the backend, that will be a
subsequent change.

Updates #12639

Change-Id: Icb48639e1d61f2aec59904ecd172c73e05ba7bf9
Signed-off-by: M. J. Fromberger <fromberger@tailscale.com>
3 days ago
..
netmapcache ipn/ipnlocal/netmapcache: add a package to split and cache network maps (#18497) 3 days ago
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 3 years ago
breaktcp_darwin.go all: remove AUTHORS file and references to it 6 days ago
breaktcp_linux.go all: remove AUTHORS file and references to it 6 days ago
bus.go all: remove AUTHORS file and references to it 6 days ago
bus_test.go all: remove AUTHORS file and references to it 6 days ago
c2n.go all: remove AUTHORS file and references to it 6 days ago
c2n_pprof.go all: remove AUTHORS file and references to it 6 days ago
c2n_test.go all: remove AUTHORS file and references to it 6 days ago
captiveportal.go all: remove AUTHORS file and references to it 6 days ago
cert.go all: remove AUTHORS file and references to it 6 days ago
cert_disabled.go all: remove AUTHORS file and references to it 6 days ago
cert_test.go all: remove AUTHORS file and references to it 6 days ago
dnsconfig_test.go appc,ipn/ipnlocal: Add split DNS entries for conn25 peers 3 days ago
drive.go all: remove AUTHORS file and references to it 6 days ago
drive_test.go all: remove AUTHORS file and references to it 6 days ago
drive_tomove.go all: remove AUTHORS file and references to it 6 days ago
expiry.go all: remove AUTHORS file and references to it 6 days ago
expiry_test.go all: remove AUTHORS file and references to it 6 days ago
extension_host.go all: remove AUTHORS file and references to it 6 days ago
extension_host_test.go all: remove AUTHORS file and references to it 6 days ago
hwattest.go all: remove AUTHORS file and references to it 6 days ago
local.go all: remove AUTHORS file and references to it 6 days ago
local_test.go all: remove AUTHORS file and references to it 6 days ago
loglines_test.go all: remove AUTHORS file and references to it 6 days ago
netstack.go all: remove AUTHORS file and references to it 6 days ago
network-lock.go all: remove AUTHORS file and references to it 6 days ago
network-lock_test.go all: remove AUTHORS file and references to it 6 days ago
node_backend.go appc,ipn/ipnlocal: Add split DNS entries for conn25 peers 3 days ago
node_backend_test.go all: remove AUTHORS file and references to it 6 days ago
peerapi.go all: remove AUTHORS file and references to it 6 days ago
peerapi_drive.go all: remove AUTHORS file and references to it 6 days ago
peerapi_macios_ext.go all: remove AUTHORS file and references to it 6 days ago
peerapi_test.go all: remove AUTHORS file and references to it 6 days ago
prefs_metrics.go all: remove AUTHORS file and references to it 6 days ago
profiles.go all: remove AUTHORS file and references to it 6 days ago
profiles_notwindows.go all: remove AUTHORS file and references to it 6 days ago
profiles_test.go all: remove AUTHORS file and references to it 6 days ago
profiles_windows.go all: remove AUTHORS file and references to it 6 days ago
serve.go all: remove AUTHORS file and references to it 6 days ago
serve_disabled.go all: remove AUTHORS file and references to it 6 days ago
serve_test.go all: remove AUTHORS file and references to it 6 days ago
serve_unix_test.go all: remove AUTHORS file and references to it 6 days ago
ssh.go all: remove AUTHORS file and references to it 6 days ago
ssh_stub.go all: remove AUTHORS file and references to it 6 days ago
ssh_test.go all: remove AUTHORS file and references to it 6 days ago
state_test.go all: remove AUTHORS file and references to it 6 days ago
tailnetlock_disabled.go all: remove AUTHORS file and references to it 6 days ago
web_client.go all: remove AUTHORS file and references to it 6 days ago
web_client_stub.go all: remove AUTHORS file and references to it 6 days ago