skylab: Expand sim features to distinguish eSIM and pSIM

Add SIM_FEATURE_PSIM and SIM_FEATURE_ESIM to sim_features

BUG=b:351955688
TEST=go test .

Change-Id: I4988db08906f4d18daa8aa191884741afa7c9766
Reviewed-on: https://chromium-review.googlesource.com/c/infra/infra/+/7885298
Reviewed-by: Jason Stanko <jstanko@google.com>
Reviewed-by: Otabek Kasimov <otabek@google.com>
Commit-Queue: Chen-Jie Tsai (xWF) <cjtsai@google.com>
Cr-Commit-Position: refs/heads/main@{#81123}
diff --git a/go/src/infra/libs/skylab/inventory/device.pb.go b/go/src/infra/libs/skylab/inventory/device.pb.go
index 8a1a17b..1f4b36e 100644
--- a/go/src/infra/libs/skylab/inventory/device.pb.go
+++ b/go/src/infra/libs/skylab/inventory/device.pb.go
@@ -2537,6 +2537,10 @@
 	Peripherals_SIM_FEATURE_LIVE_NETWORK Peripherals_SIMFeature = 1
 	// The SIM supports SMS messaging.
 	Peripherals_SIM_FEATURE_SMS Peripherals_SIMFeature = 2
+	// The SIM is an eSIM.
+	Peripherals_SIM_FEATURE_ESIM Peripherals_SIMFeature = 3
+	// The SIM is a pSIM.
+	Peripherals_SIM_FEATURE_PSIM Peripherals_SIMFeature = 4
 )
 
 // Enum value maps for Peripherals_SIMFeature.
@@ -2545,11 +2549,15 @@
 		0: "SIM_FEATURE_UNSPECIFIED",
 		1: "SIM_FEATURE_LIVE_NETWORK",
 		2: "SIM_FEATURE_SMS",
+		3: "SIM_FEATURE_ESIM",
+		4: "SIM_FEATURE_PSIM",
 	}
 	Peripherals_SIMFeature_value = map[string]int32{
 		"SIM_FEATURE_UNSPECIFIED":  0,
 		"SIM_FEATURE_LIVE_NETWORK": 1,
 		"SIM_FEATURE_SMS":          2,
+		"SIM_FEATURE_ESIM":         3,
+		"SIM_FEATURE_PSIM":         4,
 	}
 )
 
@@ -5556,7 +5564,7 @@
 	"\x1bVIDEO_ACCELERATION_ENC_H265\x10\n" +
 	"\x12\x1b\n" +
 	"\x17VIDEO_ACCELERATION_MJPG\x10\v\x12\x1f\n" +
-	"\x1bVIDEO_ACCELERATION_ENC_MJPG\x10\f\"\x9b/\n" +
+	"\x1bVIDEO_ACCELERATION_ENC_MJPG\x10\f\"\xc8/\n" +
 	"\vPeripherals\x12\x1f\n" +
 	"\vaudio_board\x18\x06 \x01(\bR\n" +
 	"audioBoard\x12\x1b\n" +
@@ -5682,12 +5690,14 @@
 	"\x06HMRGen\x12\x13\n" +
 	"\x0fHMR_GEN_UNKNOWN\x10\x00\x12\r\n" +
 	"\tHMR_GEN_1\x10\x01\x12\r\n" +
-	"\tHMR_GEN_2\x10\x02\"\\\n" +
+	"\tHMR_GEN_2\x10\x02\"\x88\x01\n" +
 	"\n" +
 	"SIMFeature\x12\x1b\n" +
 	"\x17SIM_FEATURE_UNSPECIFIED\x10\x00\x12\x1c\n" +
 	"\x18SIM_FEATURE_LIVE_NETWORK\x10\x01\x12\x13\n" +
-	"\x0fSIM_FEATURE_SMS\x10\x02J\x04\b \x10!\"\xc1\x01\n" +
+	"\x0fSIM_FEATURE_SMS\x10\x02\x12\x14\n" +
+	"\x10SIM_FEATURE_ESIM\x10\x03\x12\x14\n" +
+	"\x10SIM_FEATURE_PSIM\x10\x04J\x04\b \x10!\"\xc1\x01\n" +
 	"\rServoTopology\x12S\n" +
 	"\x04main\x18\x01 \x01(\v2?.chrome.chromeos_infra.skylab.proto.inventory.ServoTopologyItemR\x04main\x12[\n" +
 	"\bchildren\x18\x02 \x03(\v2?.chrome.chromeos_infra.skylab.proto.inventory.ServoTopologyItemR\bchildren\"\xdd\x01\n" +
diff --git a/go/src/infra/libs/skylab/inventory/device.proto b/go/src/infra/libs/skylab/inventory/device.proto
index 1397192..756f3da 100644
--- a/go/src/infra/libs/skylab/inventory/device.proto
+++ b/go/src/infra/libs/skylab/inventory/device.proto
@@ -759,6 +759,10 @@
     SIM_FEATURE_LIVE_NETWORK = 1;
     // The SIM supports SMS messaging.
     SIM_FEATURE_SMS = 2;
+    // The SIM is an eSIM.
+    SIM_FEATURE_ESIM = 3;
+    // The SIM is a pSIM.
+    SIM_FEATURE_PSIM = 4;
   }
 
   // The number of working BES boards in the testbed.
diff --git a/go/src/infra/libs/skylab/inventory/swarming/convert_test.go b/go/src/infra/libs/skylab/inventory/swarming/convert_test.go
index 61cc86e..2858d6f 100644
--- a/go/src/infra/libs/skylab/inventory/swarming/convert_test.go
+++ b/go/src/infra/libs/skylab/inventory/swarming/convert_test.go
@@ -83,7 +83,7 @@
   peripheral_wifi_state: 1
   wificell_rpm_present: true
   wifi_router_features: [2,3,4,5,999]
-  sim_features: [0,1,2]
+  sim_features: [0,1,2,3,4]
   wifi_router_models: ["gale","OPENWRT[Ubiquiti_Unifi_6_Lite]"]
   hmr_state: 1
   hmr_walt: true
@@ -274,7 +274,7 @@
   peripheral_wifi_state: 1
   wificell_rpm_present: true
   wifi_router_features: [2,3,4,5,999]
-  sim_features: [0,1,2]
+  sim_features: [0,1,2,3,4]
   wifi_router_models: ["gale","OPENWRT[Ubiquiti_Unifi_6_Lite]"]
   hmr_state: 1
   hmr_walt: true
@@ -466,7 +466,7 @@
 	"label-peripheral_btpeer_state": {"WORKING"},
 	"label-peripheral_wifi_state":   {"WORKING"},
 	"label-wifi_router_features":    {"WIFI_ROUTER_FEATURE_IEEE_802_11_A", "WIFI_ROUTER_FEATURE_IEEE_802_11_B", "WIFI_ROUTER_FEATURE_IEEE_802_11_G", "WIFI_ROUTER_FEATURE_IEEE_802_11_N", "999"},
-	"label-sim_features":            {"SIM_FEATURE_UNSPECIFIED", "SIM_FEATURE_LIVE_NETWORK", "SIM_FEATURE_SMS"},
+	"label-sim_features":            {"SIM_FEATURE_UNSPECIFIED", "SIM_FEATURE_LIVE_NETWORK", "SIM_FEATURE_SMS", "SIM_FEATURE_ESIM", "SIM_FEATURE_PSIM"},
 	"label-wifi_router_models":      {"gale", "OPENWRT[Ubiquiti_Unifi_6_Lite]"},
 	"label-phase":                   {"PHASE_MP"},
 	"label-platform":                {"platformval"},