treewide: Fix ENUM_VALUE_PREFIX rule exception

Change-Id: Ibc2fd66711f6aa347e88e2379c12db1898373700
Reviewed-on: https://review.monogon.dev/c/monogon/+/3804
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/osbase/build/earlydev.fsspec b/osbase/build/earlydev.fsspec
index a7d2ea4..310616b 100644
--- a/osbase/build/earlydev.fsspec
+++ b/osbase/build/earlydev.fsspec
@@ -7,25 +7,25 @@
 # device manager (ie. devtmpfs) is launched.
 special_file <
     path: "/dev/console"
-    type: CHARACTER_DEV
+    type: TYPE_CHARACTER_DEV
     major: 5 minor: 1
     mode: 0600 uid: 0 gid: 0
 >
 special_file <
     path: "/dev/ptmx"
-    type: CHARACTER_DEV
+    type: TYPE_CHARACTER_DEV
     major: 5 minor: 2
     mode: 0644 uid: 0 gid: 0
 >
 special_file <
     path: "/dev/null"
-    type: CHARACTER_DEV
+    type: TYPE_CHARACTER_DEV
     major: 1 minor: 3
     mode: 0644 uid: 0 gid: 0
 >
 special_file <
     path: "/dev/kmsg"
-    type: CHARACTER_DEV
+    type: TYPE_CHARACTER_DEV
     major: 1 minor: 11
     mode: 0644 uid: 0 gid: 0
 >
@@ -36,19 +36,19 @@
 # log there, too.
 special_file <
     path: "/dev/tty0"
-    type: CHARACTER_DEV
+    type: TYPE_CHARACTER_DEV
     major: 4 minor: 0
     mode: 0600 uid: 0 gid: 0
 >
 special_file <
     path: "/dev/ttyS0"
-    type: CHARACTER_DEV
+    type: TYPE_CHARACTER_DEV
     major: 4 minor: 64
     mode: 0660 uid: 0 gid: 0
 >
 special_file <
     path: "/dev/ttyS1"
-    type: CHARACTER_DEV
+    type: TYPE_CHARACTER_DEV
     major: 4 minor: 65
     mode: 0660 uid: 0 gid: 0
 >
\ No newline at end of file
diff --git a/osbase/build/fsspec/BUILD.bazel b/osbase/build/fsspec/BUILD.bazel
index 2b17b8d..0cb2c55 100644
--- a/osbase/build/fsspec/BUILD.bazel
+++ b/osbase/build/fsspec/BUILD.bazel
@@ -7,7 +7,6 @@
     name = "spec_proto_lint_test",
     except_rules = [
         "PACKAGE_VERSION_SUFFIX",
-        "ENUM_VALUE_PREFIX",  # TODO: evaluate correctness
         "ENUM_ZERO_VALUE_SUFFIX",  # TODO: evaluate correctness
     ],
     protos = [":spec_proto"],
diff --git a/osbase/build/fsspec/spec.proto b/osbase/build/fsspec/spec.proto
index 25963a1..3c98fdb 100644
--- a/osbase/build/fsspec/spec.proto
+++ b/osbase/build/fsspec/spec.proto
@@ -76,9 +76,9 @@
   string path = 1;
 
   enum Type {
-    CHARACTER_DEV = 0;
-    BLOCK_DEV = 1;
-    FIFO = 2;
+    TYPE_CHARACTER_DEV = 0;
+    TYPE_BLOCK_DEV = 1;
+    TYPE_FIFO = 2;
   }
 
   // Type of special file.
diff --git a/osbase/build/mkcpio/main.go b/osbase/build/mkcpio/main.go
index 4886c3c..000a979 100644
--- a/osbase/build/mkcpio/main.go
+++ b/osbase/build/mkcpio/main.go
@@ -196,11 +196,11 @@
 		case *fsspec.SpecialFile:
 			mode := cpio.FileMode(i.Mode)
 			switch i.Type {
-			case fsspec.SpecialFile_CHARACTER_DEV:
+			case fsspec.SpecialFile_TYPE_CHARACTER_DEV:
 				mode |= cpio.TypeChar
-			case fsspec.SpecialFile_BLOCK_DEV:
+			case fsspec.SpecialFile_TYPE_BLOCK_DEV:
 				mode |= cpio.TypeBlock
-			case fsspec.SpecialFile_FIFO:
+			case fsspec.SpecialFile_TYPE_FIFO:
 				mode |= cpio.TypeFifo
 			}
 
diff --git a/osbase/build/mkerofs/main.go b/osbase/build/mkerofs/main.go
index edcfdb9..12cde48 100644
--- a/osbase/build/mkerofs/main.go
+++ b/osbase/build/mkerofs/main.go
@@ -97,17 +97,17 @@
 			GID:         uint16(inode.SpecialFile.Gid),
 		}
 		switch inode.SpecialFile.Type {
-		case fsspec.SpecialFile_FIFO:
+		case fsspec.SpecialFile_TYPE_FIFO:
 			err = w.Create(pathname, &erofs.FIFO{
 				Base: base,
 			})
-		case fsspec.SpecialFile_CHARACTER_DEV:
+		case fsspec.SpecialFile_TYPE_CHARACTER_DEV:
 			err = w.Create(pathname, &erofs.CharacterDevice{
 				Base:  base,
 				Major: inode.SpecialFile.Major,
 				Minor: inode.SpecialFile.Minor,
 			})
-		case fsspec.SpecialFile_BLOCK_DEV:
+		case fsspec.SpecialFile_TYPE_BLOCK_DEV:
 			err = w.Create(pathname, &erofs.BlockDevice{
 				Base:  base,
 				Major: inode.SpecialFile.Major,
diff --git a/osbase/kmod/meta.go b/osbase/kmod/meta.go
index c005a7c..1c96c46 100644
--- a/osbase/kmod/meta.go
+++ b/osbase/kmod/meta.go
@@ -17,7 +17,7 @@
 	modInfoMap := make(map[string]ModuleInfo)
 	var meta kmodpb.Meta
 	meta.ModuleDeviceMatches = &kmodpb.RadixNode{
-		Type: kmodpb.RadixNode_ROOT,
+		Type: kmodpb.RadixNode_TYPE_ROOT,
 	}
 	var i uint32
 	for _, m := range modinfos {
diff --git a/osbase/kmod/radix.go b/osbase/kmod/radix.go
index c20b48d..1631d87 100644
--- a/osbase/kmod/radix.go
+++ b/osbase/kmod/radix.go
@@ -25,23 +25,23 @@
 func lookupModulesRec(n *kmodpb.RadixNode, needle string, matches map[uint32]bool) {
 	for _, c := range n.Children {
 		switch c.Type {
-		case kmodpb.RadixNode_LITERAL:
+		case kmodpb.RadixNode_TYPE_LITERAL:
 			if len(needle) < len(c.Literal) {
 				continue
 			}
 			if c.Literal == needle[:len(c.Literal)] {
 				lookupModulesRec(c, needle[len(c.Literal):], matches)
 			}
-		case kmodpb.RadixNode_WILDCARD:
+		case kmodpb.RadixNode_TYPE_WILDCARD:
 			for i := 0; i <= len(needle); i++ {
 				lookupModulesRec(c, needle[i:], matches)
 			}
-		case kmodpb.RadixNode_SINGLE_WILDCARD:
+		case kmodpb.RadixNode_TYPE_SINGLE_WILDCARD:
 			if len(needle) < 1 {
 				continue
 			}
 			lookupModulesRec(c, needle[1:], matches)
-		case kmodpb.RadixNode_BYTE_RANGE:
+		case kmodpb.RadixNode_TYPE_BYTE_RANGE:
 			if len(needle) < 1 {
 				continue
 			}
@@ -93,7 +93,7 @@
 			continue
 		}
 		switch c.Type {
-		case kmodpb.RadixNode_LITERAL:
+		case kmodpb.RadixNode_TYPE_LITERAL:
 			if c.Literal[0] == currPart.Literal[0] {
 				var i int
 				for i < len(c.Literal) && i < len(currPart.Literal) && c.Literal[i] == currPart.Literal[i] {
@@ -107,11 +107,11 @@
 					return addPatternRec(c, parts[1:], nil)
 				}
 				if i == len(c.Literal) {
-					return addPatternRec(c, parts, &kmodpb.RadixNode{Type: kmodpb.RadixNode_LITERAL, Literal: currPart.Literal[i:], ModuleIndex: currPart.ModuleIndex})
+					return addPatternRec(c, parts, &kmodpb.RadixNode{Type: kmodpb.RadixNode_TYPE_LITERAL, Literal: currPart.Literal[i:], ModuleIndex: currPart.ModuleIndex})
 				}
 				// Split current node
 				splitOldPart := &kmodpb.RadixNode{
-					Type:        kmodpb.RadixNode_LITERAL,
+					Type:        kmodpb.RadixNode_TYPE_LITERAL,
 					Literal:     c.Literal[i:],
 					Children:    c.Children,
 					ModuleIndex: c.ModuleIndex,
@@ -129,7 +129,7 @@
 					parts = parts[1:]
 				} else {
 					splitNewPart = &kmodpb.RadixNode{
-						Type:        kmodpb.RadixNode_LITERAL,
+						Type:        kmodpb.RadixNode_TYPE_LITERAL,
 						Literal:     currPart.Literal[i:],
 						ModuleIndex: currPart.ModuleIndex,
 					}
@@ -143,14 +143,14 @@
 				return addPatternRec(splitNewPart, parts[1:], nil)
 			}
 
-		case kmodpb.RadixNode_BYTE_RANGE:
+		case kmodpb.RadixNode_TYPE_BYTE_RANGE:
 			if c.StartByte == currPart.StartByte && c.EndByte == currPart.EndByte {
 				if len(parts) == 1 {
 					c.ModuleIndex = append(c.ModuleIndex, parts[0].ModuleIndex...)
 				}
 				return addPatternRec(c, parts[1:], nil)
 			}
-		case kmodpb.RadixNode_SINGLE_WILDCARD, kmodpb.RadixNode_WILDCARD:
+		case kmodpb.RadixNode_TYPE_SINGLE_WILDCARD, kmodpb.RadixNode_TYPE_WILDCARD:
 			if len(parts) == 1 {
 				c.ModuleIndex = append(c.ModuleIndex, parts[0].ModuleIndex...)
 			}
@@ -179,13 +179,13 @@
 		fmt.Printf("%v ", r.ModuleIndex)
 	}
 	switch r.Type {
-	case kmodpb.RadixNode_LITERAL:
+	case kmodpb.RadixNode_TYPE_LITERAL:
 		fmt.Printf("%q: ", r.Literal)
-	case kmodpb.RadixNode_SINGLE_WILDCARD:
+	case kmodpb.RadixNode_TYPE_SINGLE_WILDCARD:
 		fmt.Printf("?: ")
-	case kmodpb.RadixNode_WILDCARD:
+	case kmodpb.RadixNode_TYPE_WILDCARD:
 		fmt.Printf("*: ")
-	case kmodpb.RadixNode_BYTE_RANGE:
+	case kmodpb.RadixNode_TYPE_BYTE_RANGE:
 		fmt.Printf("[%c-%c]: ", rune(r.StartByte), rune(r.EndByte))
 	default:
 		log.Fatalf("Unknown tree type %T\n", r)
@@ -210,7 +210,7 @@
 	storeCurrentLiteral := func() {
 		if currentLiteral.Len() > 0 {
 			out = append(out, &kmodpb.RadixNode{
-				Type:    kmodpb.RadixNode_LITERAL,
+				Type:    kmodpb.RadixNode_TYPE_LITERAL,
 				Literal: currentLiteral.String(),
 			})
 			currentLiteral.Reset()
@@ -221,16 +221,16 @@
 		case '*':
 			storeCurrentLiteral()
 			i += 1
-			if len(out) > 0 && out[len(out)-1].Type == kmodpb.RadixNode_WILDCARD {
+			if len(out) > 0 && out[len(out)-1].Type == kmodpb.RadixNode_TYPE_WILDCARD {
 				continue
 			}
 			out = append(out, &kmodpb.RadixNode{
-				Type: kmodpb.RadixNode_WILDCARD,
+				Type: kmodpb.RadixNode_TYPE_WILDCARD,
 			})
 		case '?':
 			storeCurrentLiteral()
 			out = append(out, &kmodpb.RadixNode{
-				Type: kmodpb.RadixNode_SINGLE_WILDCARD,
+				Type: kmodpb.RadixNode_TYPE_SINGLE_WILDCARD,
 			})
 			i += 1
 		case '[':
@@ -242,7 +242,7 @@
 				return nil, errors.New("illegal byte range notation, incorrect dash or closing character")
 			}
 			nn := &kmodpb.RadixNode{
-				Type:      kmodpb.RadixNode_BYTE_RANGE,
+				Type:      kmodpb.RadixNode_TYPE_BYTE_RANGE,
 				StartByte: uint32(pattern[i+1]),
 				EndByte:   uint32(pattern[i+3]),
 			}
diff --git a/osbase/kmod/radix_test.go b/osbase/kmod/radix_test.go
index 62e9d95..e89a514 100644
--- a/osbase/kmod/radix_test.go
+++ b/osbase/kmod/radix_test.go
@@ -20,18 +20,18 @@
 		expectedNodes []*kmodpb.RadixNode
 	}{
 		{"Empty", "", nil},
-		{"SingleLiteral", "asdf", []*kmodpb.RadixNode{{Type: kmodpb.RadixNode_LITERAL, Literal: "asdf"}}},
+		{"SingleLiteral", "asdf", []*kmodpb.RadixNode{{Type: kmodpb.RadixNode_TYPE_LITERAL, Literal: "asdf"}}},
 		{"SingleWildcard", "as*df", []*kmodpb.RadixNode{
-			{Type: kmodpb.RadixNode_LITERAL, Literal: "as"},
-			{Type: kmodpb.RadixNode_WILDCARD},
-			{Type: kmodpb.RadixNode_LITERAL, Literal: "df"},
+			{Type: kmodpb.RadixNode_TYPE_LITERAL, Literal: "as"},
+			{Type: kmodpb.RadixNode_TYPE_WILDCARD},
+			{Type: kmodpb.RadixNode_TYPE_LITERAL, Literal: "df"},
 		}},
-		{"EscapedWildcard", "a\\*", []*kmodpb.RadixNode{{Type: kmodpb.RadixNode_LITERAL, Literal: "a*"}}},
-		{"SingleRange", "[y-z]", []*kmodpb.RadixNode{{Type: kmodpb.RadixNode_BYTE_RANGE, StartByte: 121, EndByte: 122}}},
+		{"EscapedWildcard", "a\\*", []*kmodpb.RadixNode{{Type: kmodpb.RadixNode_TYPE_LITERAL, Literal: "a*"}}},
+		{"SingleRange", "[y-z]", []*kmodpb.RadixNode{{Type: kmodpb.RadixNode_TYPE_BYTE_RANGE, StartByte: 121, EndByte: 122}}},
 		{"SingleWildcardChar", "a?c", []*kmodpb.RadixNode{
-			{Type: kmodpb.RadixNode_LITERAL, Literal: "a"},
-			{Type: kmodpb.RadixNode_SINGLE_WILDCARD},
-			{Type: kmodpb.RadixNode_LITERAL, Literal: "c"},
+			{Type: kmodpb.RadixNode_TYPE_LITERAL, Literal: "a"},
+			{Type: kmodpb.RadixNode_TYPE_SINGLE_WILDCARD},
+			{Type: kmodpb.RadixNode_TYPE_LITERAL, Literal: "c"},
 		}},
 	}
 	for _, c := range cases {
@@ -50,7 +50,7 @@
 
 func TestLookupComplex(t *testing.T) {
 	root := &kmodpb.RadixNode{
-		Type: kmodpb.RadixNode_LITERAL,
+		Type: kmodpb.RadixNode_TYPE_LITERAL,
 	}
 	if err := AddPattern(root, "usb:v0B95p1790d*dc*dsc*dp*icFFiscFFip00in*", 2); err != nil {
 		t.Error(err)
@@ -84,7 +84,7 @@
 		values := strings.Split(b, "\x00")
 		var patternsRegexp []regexp.Regexp
 		root := &kmodpb.RadixNode{
-			Type: kmodpb.RadixNode_LITERAL,
+			Type: kmodpb.RadixNode_TYPE_LITERAL,
 		}
 		for i, p := range patternsRaw {
 			if !isASCII(p) {
@@ -103,13 +103,13 @@
 			regexb.WriteString("(?s)^")
 			for _, part := range pp {
 				switch part.Type {
-				case kmodpb.RadixNode_LITERAL:
+				case kmodpb.RadixNode_TYPE_LITERAL:
 					regexb.WriteString(regexp.QuoteMeta(part.Literal))
-				case kmodpb.RadixNode_SINGLE_WILDCARD:
+				case kmodpb.RadixNode_TYPE_SINGLE_WILDCARD:
 					regexb.WriteString(".")
-				case kmodpb.RadixNode_WILDCARD:
+				case kmodpb.RadixNode_TYPE_WILDCARD:
 					regexb.WriteString(".*")
-				case kmodpb.RadixNode_BYTE_RANGE:
+				case kmodpb.RadixNode_TYPE_BYTE_RANGE:
 					regexb.WriteString(fmt.Sprintf("[%s-%s]", regexp.QuoteMeta(string([]rune{rune(part.StartByte)})), regexp.QuoteMeta(string([]rune{rune(part.EndByte)}))))
 				default:
 					t.Errorf("Unknown node type %v", part.Type)
diff --git a/osbase/kmod/spec/BUILD.bazel b/osbase/kmod/spec/BUILD.bazel
index 5ff430e..8994546 100644
--- a/osbase/kmod/spec/BUILD.bazel
+++ b/osbase/kmod/spec/BUILD.bazel
@@ -7,7 +7,6 @@
     name = "spec_proto_lint_test",
     except_rules = [
         "PACKAGE_VERSION_SUFFIX",
-        "ENUM_VALUE_PREFIX",  # TODO: evaluate correctness
         "ENUM_ZERO_VALUE_SUFFIX",  # TODO: evaluate correctness
     ],
     protos = [":spec_proto"],
diff --git a/osbase/kmod/spec/meta.proto b/osbase/kmod/spec/meta.proto
index 2eb5c7a..634b2ad 100644
--- a/osbase/kmod/spec/meta.proto
+++ b/osbase/kmod/spec/meta.proto
@@ -18,16 +18,16 @@
 message RadixNode {
     enum Type {
         // Matches one or more characters literally.
-        LITERAL = 0;
+        TYPE_LITERAL = 0;
         // Matches zero or more arbitrary characters.
-        WILDCARD = 1;
+        TYPE_WILDCARD = 1;
         // Matches exactly one arbitrary character.
-        SINGLE_WILDCARD = 2;
+        TYPE_SINGLE_WILDCARD = 2;
         // Matches exactly one character between start_byte and end_byte.
-        BYTE_RANGE = 3;
+        TYPE_BYTE_RANGE = 3;
         // Root matches nothing, but serves a the root node for a radix
         // tree.
-        ROOT = 4;
+        TYPE_ROOT = 4;
     }
     Type type = 1;
 
diff --git a/osbase/logtree/leveled.go b/osbase/logtree/leveled.go
index 701d8d0..0ca6e48 100644
--- a/osbase/logtree/leveled.go
+++ b/osbase/logtree/leveled.go
@@ -25,13 +25,13 @@
 
 func SeverityFromProto(s lpb.LeveledLogSeverity) (logging.Severity, error) {
 	switch s {
-	case lpb.LeveledLogSeverity_INFO:
+	case lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_INFO:
 		return logging.INFO, nil
-	case lpb.LeveledLogSeverity_WARNING:
+	case lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_WARNING:
 		return logging.WARNING, nil
-	case lpb.LeveledLogSeverity_ERROR:
+	case lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_ERROR:
 		return logging.ERROR, nil
-	case lpb.LeveledLogSeverity_FATAL:
+	case lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_FATAL:
 		return logging.FATAL, nil
 	default:
 		return "", fmt.Errorf("unknown severity value %d", s)
@@ -41,14 +41,14 @@
 func SeverityToProto(s logging.Severity) lpb.LeveledLogSeverity {
 	switch s {
 	case logging.INFO:
-		return lpb.LeveledLogSeverity_INFO
+		return lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_INFO
 	case logging.WARNING:
-		return lpb.LeveledLogSeverity_WARNING
+		return lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_WARNING
 	case logging.ERROR:
-		return lpb.LeveledLogSeverity_ERROR
+		return lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_ERROR
 	case logging.FATAL:
-		return lpb.LeveledLogSeverity_FATAL
+		return lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_FATAL
 	default:
-		return lpb.LeveledLogSeverity_INVALID
+		return lpb.LeveledLogSeverity_LEVELED_LOG_SEVERITY_INVALID
 	}
 }
diff --git a/osbase/logtree/proto/BUILD.bazel b/osbase/logtree/proto/BUILD.bazel
index b7b76d4..9a87f5c 100644
--- a/osbase/logtree/proto/BUILD.bazel
+++ b/osbase/logtree/proto/BUILD.bazel
@@ -7,7 +7,6 @@
     name = "proto_proto_lint_test",
     except_rules = [
         "PACKAGE_VERSION_SUFFIX",
-        "ENUM_VALUE_PREFIX",  # TODO: evaluate correctness
         "ENUM_ZERO_VALUE_SUFFIX",  # TODO: evaluate correctness
     ],
     protos = [":proto_proto"],
diff --git a/osbase/logtree/proto/logtree.proto b/osbase/logtree/proto/logtree.proto
index fb80a71..ce905cc 100644
--- a/osbase/logtree/proto/logtree.proto
+++ b/osbase/logtree/proto/logtree.proto
@@ -22,11 +22,11 @@
 
 // Severity level corresponding to //osbase/logtree.Severity.
 enum LeveledLogSeverity {
-  INVALID = 0;
-  INFO = 1;
-  WARNING = 2;
-  ERROR = 3;
-  FATAL = 4;
+  LEVELED_LOG_SEVERITY_INVALID = 0;
+  LEVELED_LOG_SEVERITY_INFO = 1;
+  LEVELED_LOG_SEVERITY_WARNING = 2;
+  LEVELED_LOG_SEVERITY_ERROR = 3;
+  LEVELED_LOG_SEVERITY_FATAL = 4;
 }
 
 // LogEntry corresponding to logtree.LogEntry in //osbase/logtree.
diff --git a/osbase/net/dump/netdump.go b/osbase/net/dump/netdump.go
index 7ea9ae2..d9586ed 100644
--- a/osbase/net/dump/netdump.go
+++ b/osbase/net/dump/netdump.go
@@ -18,8 +18,8 @@
 )
 
 var vlanProtoMap = map[netlink.VlanProtocol]netapi.VLAN_Protocol{
-	netlink.VLAN_PROTOCOL_8021Q:  netapi.VLAN_CVLAN,
-	netlink.VLAN_PROTOCOL_8021AD: netapi.VLAN_SVLAN,
+	netlink.VLAN_PROTOCOL_8021Q:  netapi.VLAN_PROTOCOL_CVLAN,
+	netlink.VLAN_PROTOCOL_8021AD: netapi.VLAN_PROTOCOL_SVLAN,
 }
 
 // From iproute2's rt_protos
@@ -265,19 +265,19 @@
 func getIPv6IfaceAutoconfigPrivacy(name string) (netapi.IPv6Autoconfig_Privacy, error) {
 	useTempaddrRaw, err := os.ReadFile(fmt.Sprintf("/proc/sys/net/ipv6/conf/%s/use_tempaddr", name))
 	if err != nil {
-		return netapi.IPv6Autoconfig_DISABLE, fmt.Errorf("failed to read use_tempaddr sysctl for interface %q: %w", name, err)
+		return netapi.IPv6Autoconfig_PRIVACY_DISABLE, fmt.Errorf("failed to read use_tempaddr sysctl for interface %q: %w", name, err)
 	}
 	useTempaddr, err := strconv.ParseInt(strings.TrimSpace(string(useTempaddrRaw)), 10, 64)
 	if err != nil {
-		return netapi.IPv6Autoconfig_DISABLE, fmt.Errorf("failed to parse use_tempaddr sysctl for interface %q: %w", name, err)
+		return netapi.IPv6Autoconfig_PRIVACY_DISABLE, fmt.Errorf("failed to parse use_tempaddr sysctl for interface %q: %w", name, err)
 	}
 	switch {
 	case useTempaddr <= 0:
-		return netapi.IPv6Autoconfig_DISABLE, nil
+		return netapi.IPv6Autoconfig_PRIVACY_DISABLE, nil
 	case useTempaddr == 1:
-		return netapi.IPv6Autoconfig_AVOID, nil
+		return netapi.IPv6Autoconfig_PRIVACY_AVOID, nil
 	case useTempaddr > 1:
-		return netapi.IPv6Autoconfig_PREFER, nil
+		return netapi.IPv6Autoconfig_PRIVACY_PREFER, nil
 	default:
 		panic("switch is complete but hit default case")
 	}
diff --git a/osbase/net/proto/BUILD.bazel b/osbase/net/proto/BUILD.bazel
index f7a6ab2..bd69b94 100644
--- a/osbase/net/proto/BUILD.bazel
+++ b/osbase/net/proto/BUILD.bazel
@@ -7,7 +7,6 @@
     name = "proto_proto_lint_test",
     except_rules = [
         "PACKAGE_VERSION_SUFFIX",
-        "ENUM_VALUE_PREFIX",  # TODO: evaluate correctness
         "ENUM_ZERO_VALUE_SUFFIX",  # TODO: evaluate correctness
     ],
     protos = [":proto_proto"],
diff --git a/osbase/net/proto/net.proto b/osbase/net/proto/net.proto
index 1fd46aa..02e4160 100644
--- a/osbase/net/proto/net.proto
+++ b/osbase/net/proto/net.proto
@@ -57,17 +57,17 @@
   }
   enum TransmitHashPolicy {
     // Layer 2 MAC address
-    LAYER2 = 0;
+    TRANSMIT_HASH_POLICY_LAYER2 = 0;
     // IP address, protocol and port
-    LAYER3_4 = 1;
+    TRANSMIT_HASH_POLICY_LAYER3_4 = 1;
     // MAC address and IP address
-    LAYER2_3 = 2;
+    TRANSMIT_HASH_POLICY_LAYER2_3 = 2;
     // Encapsulated MAC address and IP address
-    ENCAP_LAYER2_3 = 3;
+    TRANSMIT_HASH_POLICY_ENCAP_LAYER2_3 = 3;
     // Encapsulated IP address, protocol and port
-    ENCAP_LAYER3_4 = 4;
+    TRANSMIT_HASH_POLICY_ENCAP_LAYER3_4 = 4;
     // VLAN ID and source MAC
-    VLAN_SRCMAC = 5;
+    TRANSMIT_HASH_POLICY_VLAN_SRCMAC = 5;
   }
   TransmitHashPolicy transmit_hash_policy = 4;
   // Use the Link Aggregation Control Protocol to automatically use the
@@ -75,15 +75,15 @@
   message LACP {
     enum Rate {
       // LACP slow rate, one packet every 30s
-      SLOW = 0;
+      RATE_SLOW = 0;
       // LACP fast rate, one packet every 1s
-      FAST = 1;
+      RATE_FAST = 1;
     }
     Rate rate = 1;
     enum SelectionLogic {
-      STABLE = 0;
-      BANDWIDTH = 1;
-      COUNT = 2;
+      SELECTION_LOGIC_STABLE = 0;
+      SELECTION_LOGIC_BANDWIDTH = 1;
+      SELECTION_LOGIC_COUNT = 2;
     }
     SelectionLogic selection_logic = 2;
     int32 actor_system_priority = 3;
@@ -109,12 +109,12 @@
   enum Protocol {
     // C-VLAN, also known as "standard" VLAN inserts a header with the
     // VLAN ID (VID) right before the EtherType.
-    CVLAN = 0;
+    PROTOCOL_CVLAN = 0;
     // S-VLAN, also known as QinQ or 802.1ad (obsolete) inserts a second VLAN ID
     // before the C-VLAN header. This allows stacking two VLANs. The ID
     // specified here is just for the outer VLAN, the inner one can be set by
     // creating another VLAN interface and setting this one to be its parent.
-    SVLAN = 1;
+    PROTOCOL_SVLAN = 1;
   }
   Protocol protocol = 3;
 }
@@ -130,12 +130,12 @@
 message IPv6Autoconfig {
   enum Privacy {
     // Do not generate privacy addresses.
-    DISABLE = 0;
+    PRIVACY_DISABLE = 0;
     // Generate privacy addresses, but prefer non-privacy addresses.
-    AVOID = 1;
+    PRIVACY_AVOID = 1;
     // Generate privacy addresses and use them over other non-privacy
     // addresses.
-    PREFER = 2;
+    PRIVACY_PREFER = 2;
   }
   // privacy controls if and how privacy addresses (see RFC 4941) are used if
   // DHCPv6 is not used for addressing. If DHCPv6 is used for addressing