diff --git a/gtests/net/packetdrill/netdev.c b/gtests/net/packetdrill/netdev.c
index 8cee434d8426fb9b05f90f7850848c627a257abe..1d92da4dd173b9a0026b0b74d644cb18369c3468 100644
--- a/gtests/net/packetdrill/netdev.c
+++ b/gtests/net/packetdrill/netdev.c
@@ -371,11 +371,12 @@ static int local_netdev_receive(struct netdev *a_netdev,
 	DEBUGP("local_netdev_receive\n");
 
 	return netdev_receive_loop(netdev->psock, PACKET_LAYER_3_IP,
-				   packet, error);
+				   DIRECTION_OUTBOUND, packet, error);
 }
 
 int netdev_receive_loop(struct packet_socket *psock,
 			enum packet_layer_t layer,
+			enum direction_t direction,
 			struct packet **packet,
 			char **error)
 {
@@ -388,8 +389,7 @@ int netdev_receive_loop(struct packet_socket *psock,
 		*packet = packet_new(PACKET_READ_BYTES);
 
 		/* Sniff the next outbound packet from the kernel under test. */
-		if (packet_socket_receive(psock, DIRECTION_OUTBOUND,
-					  *packet, &in_bytes))
+		if (packet_socket_receive(psock, direction, *packet, &in_bytes))
 			continue;
 
 		result = parse_packet(*packet, in_bytes, layer, error);
diff --git a/gtests/net/packetdrill/netdev.h b/gtests/net/packetdrill/netdev.h
index 84e87a0af5771ef6e3fbf6ce885986bad66812f1..d7444a860e42eeb8d5d9fcbc0cf02462e15803a0 100644
--- a/gtests/net/packetdrill/netdev.h
+++ b/gtests/net/packetdrill/netdev.h
@@ -88,6 +88,7 @@ static inline int netdev_receive(struct netdev *netdev,
  */
 extern int netdev_receive_loop(struct packet_socket *psock,
 			       enum packet_layer_t layer,
+			       enum direction_t direction,
 			       struct packet **packet,
 			       char **error);
 
diff --git a/gtests/net/packetdrill/wire_server_netdev.c b/gtests/net/packetdrill/wire_server_netdev.c
index 066566f251d5e87674357a904986bfec5cb3d59c..219f86c3d6384e7423a4a5c879d4f50a4c8323a0 100644
--- a/gtests/net/packetdrill/wire_server_netdev.c
+++ b/gtests/net/packetdrill/wire_server_netdev.c
@@ -192,7 +192,7 @@ static int wire_server_netdev_receive(struct netdev *a_netdev,
 	DEBUGP("wire_server_netdev_receive\n");
 
 	return netdev_receive_loop(netdev->psock, PACKET_LAYER_2_ETHERNET,
-				   packet, error);
+				   DIRECTION_INBOUND, packet, error);
 }
 
 struct netdev_ops wire_server_netdev_ops = {