diff --git a/api/system-current.txt b/api/system-current.txt
index 6574c802b339d0db6a0c8eb2e92b6cfab97fe296..e878c3822f5bc76ca845318d945137339902c7b5 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4432,7 +4432,8 @@ package android.net.util {
     method public static void closeSocket(@Nullable java.io.FileDescriptor) throws java.io.IOException;
     method @NonNull public static java.net.SocketAddress makeNetlinkSocketAddress(int, int);
     method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, int);
-    method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, @NonNull byte[]);
+    method @Deprecated @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, @NonNull byte[]);
+    method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, int, @NonNull byte[]);
   }
 
 }
diff --git a/api/test-current.txt b/api/test-current.txt
index 716f0c68dbc3e4ebc53f1ecc0ec5598262ca74c1..349aeb1c1e3a1e720369aaeb3bca8b8e0f2eacd0 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -1654,7 +1654,8 @@ package android.net.util {
     method public static void closeSocket(@Nullable java.io.FileDescriptor) throws java.io.IOException;
     method @NonNull public static java.net.SocketAddress makeNetlinkSocketAddress(int, int);
     method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, int);
-    method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, @NonNull byte[]);
+    method @Deprecated @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, @NonNull byte[]);
+    method @NonNull public static java.net.SocketAddress makePacketSocketAddress(int, int, @NonNull byte[]);
   }
 
 }
diff --git a/core/java/android/net/util/SocketUtils.java b/core/java/android/net/util/SocketUtils.java
index 489a2922f70e3570a002ff22b23a835e536d66c3..e9ea99f84f9055d6e0a44679e47bf08a24777a0e 100644
--- a/core/java/android/net/util/SocketUtils.java
+++ b/core/java/android/net/util/SocketUtils.java
@@ -77,7 +77,9 @@ public final class SocketUtils {
 
     /**
      * Make a socket address that packet socket can send packets to.
+     * @deprecated Use {@link #makePacketSocketAddress(int, int, byte[])} instead.
      */
+    @Deprecated
     @NonNull
     public static SocketAddress makePacketSocketAddress(int ifIndex, @NonNull byte[] hwAddr) {
         return new PacketSocketAddress(
@@ -86,6 +88,18 @@ public final class SocketUtils {
                 hwAddr /* sll_addr */);
     }
 
+    /**
+     * Make a socket address that packet socket can send packets to.
+     */
+    @NonNull
+    public static SocketAddress makePacketSocketAddress(int protocol, int ifIndex,
+            @NonNull byte[] hwAddr) {
+        return new PacketSocketAddress(
+                protocol /* sll_protocol */,
+                ifIndex /* sll_ifindex */,
+                hwAddr /* sll_addr */);
+    }
+
     /**
      * @see IoBridge#closeAndSignalBlockedThreads(FileDescriptor)
      */