m/n/c/network: explain why links cannot be returned

Explain the cause of the revert of CL 3112 as the code is kind of
confusing without knowing why the returned link is an empty link
structure with just the index set instead of the original one.

Change-Id: I5b9cdf6e76eb33cb610cc53976edc5863c9dc583
Reviewed-on: https://review.monogon.dev/c/monogon/+/3140
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/node/core/network/static.go b/metropolis/node/core/network/static.go
index 3d695cc..b1b15eb 100644
--- a/metropolis/node/core/network/static.go
+++ b/metropolis/node/core/network/static.go
@@ -331,6 +331,10 @@
 	if len(matchedDevices) <= int(it.Device.Index) || it.Device.Index < 0 {
 		return nil, fmt.Errorf("there are %d matching host devices but requested device index is %d", len(matchedDevices), it.Device.Index)
 	}
+	// Return new Device stuct with empty LinkAttrs other than Index, which is
+	// used to identify the device. Add/Modify operations will otherwise try to
+	// set attributes returned by the kernel, some of which cause an ENOTSUPP
+	// error.
 	dev := &netlink.Device{
 		LinkAttrs: netlink.NewLinkAttrs(),
 	}