diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java b/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
index 9a97a52..147a7e5 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
@@ -33,8 +33,8 @@
 
 import io.grpc.stub.StreamObserver;
 
-import java.util.HashSet;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 final class DebianServiceImpl extends DebianServiceGrpc.DebianServiceImplBase {
     private final Context mContext;
@@ -57,7 +57,10 @@
             ReportVmActivePortsRequest request,
             StreamObserver<ReportVmActivePortsResponse> responseObserver) {
         Log.d(TAG, "reportVmActivePorts: " + request.toString());
-        mPortsStateManager.updateActivePorts(new HashSet<>(request.getPortsList()));
+        mPortsStateManager.updateActivePorts(
+                request.getPortsList().stream()
+                        .map(activePort -> activePort.getPort())
+                        .collect(Collectors.toSet()));
         ReportVmActivePortsResponse reply =
                 ReportVmActivePortsResponse.newBuilder().setSuccess(true).build();
         responseObserver.onNext(reply);
diff --git a/guest/forwarder_guest_launcher/src/main.rs b/guest/forwarder_guest_launcher/src/main.rs
index 6a2a692..bed8965 100644
--- a/guest/forwarder_guest_launcher/src/main.rs
+++ b/guest/forwarder_guest_launcher/src/main.rs
@@ -18,7 +18,7 @@
 use clap::Parser;
 use csv_async::AsyncReader;
 use debian_service::debian_service_client::DebianServiceClient;
-use debian_service::{QueueOpeningRequest, ReportVmActivePortsRequest};
+use debian_service::{ActivePort, QueueOpeningRequest, ReportVmActivePortsRequest};
 use futures::stream::StreamExt;
 use log::{debug, error};
 use serde::Deserialize;
@@ -93,7 +93,7 @@
 ) -> Result<(), Box<dyn std::error::Error>> {
     let res = client
         .report_vm_active_ports(Request::new(ReportVmActivePortsRequest {
-            ports: listening_ports.into_iter().collect(),
+            ports: listening_ports.into_iter().map(|port| ActivePort { port }).collect(),
         }))
         .await?
         .into_inner();
diff --git a/libs/debian_service/proto/DebianService.proto b/libs/debian_service/proto/DebianService.proto
index 60f20d4..7ab0af7 100644
--- a/libs/debian_service/proto/DebianService.proto
+++ b/libs/debian_service/proto/DebianService.proto
@@ -31,8 +31,13 @@
   int32 cid = 1;
 }
 
+// TODO(b/382998551): Add more information about the port.
+message ActivePort {
+  int32 port = 1;
+}
+
 message ReportVmActivePortsRequest {
-  repeated int32 ports = 1;
+  repeated ActivePort ports = 1;
 }
 
 message ReportVmActivePortsResponse {
