diff --git a/gtests/net/packetdrill/run_packet.c b/gtests/net/packetdrill/run_packet.c
index 7bb90459bd3e09bc65172edd1c402091593b4977..fc20dcbe2431324b34bf85e1e072b1ab424bfe82 100644
--- a/gtests/net/packetdrill/run_packet.c
+++ b/gtests/net/packetdrill/run_packet.c
@@ -1423,7 +1423,7 @@ static int verify_ipv6(
 			return STATUS_ERR;
 		break;
 	case IPPROTO_UDP:
-		if (udp_encaps != 0) {
+		if (udp_encaps == IPPROTO_TCP) {
 			if (check_field("ipv6_payload_len",
 					(ntohs(script_ipv6->payload_len) +
 					 tcp_options_allowance(actual_packet,
@@ -1433,7 +1433,8 @@ static int verify_ipv6(
 			break;
 		} else if (udp_encaps == IPPROTO_SCTP) {
 			break;
-		}
+		} else
+			break;
 	default:
 		if (check_field("ipv6_payload_len",
 				ntohs(script_ipv6->payload_len),