From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 12:22:26 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 12:22:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353280.1609282 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfcuX-0004Ph-2v; Fri, 03 Jul 2026 12:22:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353280.1609282; Fri, 03 Jul 2026 12:22:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfcuW-0004PZ-WA; Fri, 03 Jul 2026 12:22:24 +0000
Received: by outflank-mailman (input) for mailman id 1353280;
 Fri, 03 Jul 2026 12:22:24 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1wfcuV-0004PN-T1
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 12:22:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfcuV-008zqe-9p
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 14:22:23 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a47a97b-5cb7-0a2a0a5109dd-0a2a4506dfa4-12
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 14:22:23 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a47a97e-08de-0a2a45060019-a0658309a596-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 14:22:23 +0200
Received: from mewpvdipd2033.citrite.net (unknown [10.113.48.64])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 1A74B82C984E;
 Fri,  3 Jul 2026 08:20:49 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Owen Smith <owen.smith@citrix.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [PATCH 1/2] Wrap calls to Parse Pullup callback
Date: Fri,  3 Jul 2026 13:22:15 +0100
Message-ID: <20260703122217.57-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.51.2.windows.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1783081343-C613F68D-5DBCF4F0/0/0
X-purgate-type: clean
X-purgate-size: 9676

This will allow additional checks to be added to the buffers

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xenvif/parse.c | 163 +++++++++++++++++++++++++++++----------------
 1 file changed, 106 insertions(+), 57 deletions(-)

diff --git a/src/xenvif/parse.c b/src/xenvif/parse.c
index 62bc223..2e5000d 100644
--- a/src/xenvif/parse.c
+++ b/src/xenvif/parse.c
@@ -44,6 +44,22 @@
 #include "assert.h"
 #include "util.h"
 
+static FORCEINLINE BOOLEAN
+__ParsePullup(
+    IN      XENVIF_PARSE_PULLUP         Pullup,
+    IN      PVOID                       Argument,
+    IN      PUCHAR                      StartVa,
+    IN      ULONG                       Offset,
+    IN      PXENVIF_PACKET_PAYLOAD      Payload,
+    IN      ULONG                       Length
+    )
+{
+    return Pullup(Argument,
+                  StartVa + Offset,
+                  Payload,
+                  Length);
+}
+
 static FORCEINLINE NTSTATUS
 __ParseTcpHeader(
     IN      PUCHAR                      StartVa,
@@ -58,10 +74,12 @@ __ParseTcpHeader(
 
     Info->TcpHeader.Offset = Offset;
 
-    if (!Pullup(Argument,
-                StartVa + Offset,
-                Payload,
-                sizeof (TCP_HEADER)))
+    if (!__ParsePullup(Pullup,
+                       Argument,
+                       StartVa,
+                       Offset,
+                       Payload,
+                       sizeof (TCP_HEADER)))
         goto fail1;
 
     Header = (PTCP_HEADER)(StartVa + Offset);
@@ -80,10 +98,12 @@ __ParseTcpHeader(
 
         Extra = TCP_HEADER_LENGTH(Header) - Info->TcpHeader.Length;
 
-        if (!Pullup(Argument,
-                    StartVa + Offset,
-                    Payload,
-                    Extra))
+        if (!__ParsePullup(Pullup,
+                           Argument,
+                           StartVa,
+                           Offset,
+                           Payload,
+                           Extra))
             goto fail3;
 
         Offset += Extra;
@@ -119,10 +139,12 @@ __ParseUdpHeader(
 {
     Info->UdpHeader.Offset = Offset;
 
-    if (!Pullup(Argument,
-                StartVa + Offset,
-                Payload,
-                sizeof (UDP_HEADER)))
+    if (!__ParsePullup(Pullup,
+                       Argument,
+                       StartVa,
+                       Offset,
+                       Payload,
+                       sizeof (UDP_HEADER)))
         goto fail1;
 
     Offset += sizeof (UDP_HEADER);
@@ -156,7 +178,12 @@ __ParseIpVersion4Header(
 
     Info->IpHeader.Offset = Offset;
 
-    if (!Pullup(Argument, StartVa + Offset, Payload, sizeof (IPV4_HEADER)))
+    if (!__ParsePullup(Pullup,
+                       Argument,
+                       StartVa,
+                       Offset,
+                       Payload,
+                       sizeof (IPV4_HEADER)))
         goto fail1;
 
     Header = (PIPV4_HEADER)(StartVa + Offset);
@@ -181,10 +208,12 @@ __ParseIpVersion4Header(
 
         Extra = IPV4_HEADER_LENGTH(Header) - Info->IpHeader.Length;
 
-        if (!Pullup(Argument,
-                    StartVa + Offset,
-                    Payload,
-                    Extra))
+        if (!__ParsePullup(Pullup,
+                           Argument,
+                           StartVa,
+                           Offset,
+                           Payload,
+                           Extra))
             goto fail5;
 
         Offset += Extra;
@@ -261,10 +290,12 @@ __ParseIpVersion6Header(
 
     Info->IpHeader.Offset = Offset;
 
-    if (!Pullup(Argument,
-                StartVa + Offset,
-                Payload,
-                sizeof (IPV6_HEADER)))
+    if (!__ParsePullup(Pullup,
+                       Argument,
+                       StartVa,
+                       Offset,
+                       Payload,
+                       sizeof (IPV6_HEADER)))
         goto fail1;
 
     Header = (PIPV6_HEADER)(StartVa + Offset);
@@ -291,10 +322,12 @@ __ParseIpVersion6Header(
             PIPV6_FRAGMENT_HEADER   Fragment;
             USHORT                  FragmentOffsetAndFlags;
 
-            if (!Pullup(Argument,
-                        StartVa + Offset,
-                        Payload,
-                        sizeof (IPV6_FRAGMENT_HEADER)))
+            if (!__ParsePullup(Pullup,
+                               Argument,
+                               StartVa,
+                               Offset,
+                               Payload,
+                               sizeof (IPV6_FRAGMENT_HEADER)))
                 goto fail4;
 
             Fragment = (PIPV6_FRAGMENT_HEADER)(StartVa + Offset);
@@ -310,10 +343,12 @@ __ParseIpVersion6Header(
             PIP_AUTHENTICATION_HEADER   Authentication;
             ULONG                       Extra;
 
-            if (!Pullup(Argument,
-                        StartVa + Offset,
-                        Payload,
-                        sizeof (IP_AUTHENTICATION_HEADER)))
+            if (!__ParsePullup(Pullup,
+                               Argument,
+                               StartVa,
+                               Offset,
+                               Payload,
+                               sizeof (IP_AUTHENTICATION_HEADER)))
                 goto fail4;
 
             Authentication = (PIP_AUTHENTICATION_HEADER)(StartVa + Offset);
@@ -322,10 +357,12 @@ __ParseIpVersion6Header(
             Extra = ((ULONG)(Authentication->Length + 2) << 2) -
                     ((ULONG)sizeof (IP_AUTHENTICATION_HEADER));
 
-            if (!Pullup(Argument,
-                        StartVa + Offset,
-                        Payload,
-                        Extra))
+            if (!__ParsePullup(Pullup,
+                               Argument,
+                               StartVa,
+                               Offset,
+                               Payload,
+                               Extra))
                 goto fail5;
 
             Offset += Extra;
@@ -339,10 +376,12 @@ __ParseIpVersion6Header(
             PIPV6_OPTION_HEADER Option;
             ULONG               Extra;
 
-            if (!Pullup(Argument,
-                        StartVa + Offset,
-                        Payload,
-                        sizeof (IPV6_OPTION_HEADER)))
+            if (!__ParsePullup(Pullup,
+                               Argument,
+                               StartVa,
+                               Offset,
+                               Payload,
+                               sizeof (IPV6_OPTION_HEADER)))
                 goto fail4;
 
             Option = (PIPV6_OPTION_HEADER)(StartVa + Offset);
@@ -351,10 +390,12 @@ __ParseIpVersion6Header(
             Extra = ((ULONG)(Option->Length + 1) << 3) -
                     ((ULONG)sizeof (IPV6_OPTION_HEADER));
 
-            if (!Pullup(Argument,
-                        StartVa + Offset,
-                        Payload,
-                        Extra))
+            if (!__ParsePullup(Pullup,
+                               Argument,
+                               StartVa,
+                               Offset,
+                               Payload,
+                               Extra))
                 goto fail5;
 
             Offset += Extra;
@@ -439,10 +480,12 @@ __ParseLLCSnapHeader(
 
     Info->LLCSnapHeader.Offset = Offset;
 
-    if (!Pullup(Argument,
-                StartVa + Offset,
-                Payload,
-                sizeof (LLC_U_HEADER)))
+    if (!__ParsePullup(Pullup,
+                       Argument,
+                       StartVa,
+                       Offset,
+                       Payload,
+                       sizeof (LLC_U_HEADER)))
         goto fail1;
 
     Header = (PLLC_SNAP_HEADER)(StartVa + Offset);
@@ -455,10 +498,12 @@ __ParseLLCSnapHeader(
 
         Extra = sizeof (LLC_SNAP_HEADER) - sizeof (LLC_U_HEADER);
 
-        if (!Pullup(Argument,
-                    StartVa + Offset,
-                    Payload,
-                    Extra))
+        if (!__ParsePullup(Pullup,
+                           Argument,
+                           StartVa,
+                           Offset,
+                           Payload,
+                           Extra))
             goto fail2;
 
         Offset += Extra;
@@ -494,10 +539,12 @@ __ParseEthernetHeader(
 
     Info->EthernetHeader.Offset = Offset;
 
-    if (!Pullup(Argument,
-                StartVa + Offset,
-                Payload,
-                sizeof (ETHERNET_UNTAGGED_HEADER)))
+    if (!__ParsePullup(Pullup,
+                       Argument,
+                       StartVa,
+                       Offset,
+                       Payload,
+                       sizeof (ETHERNET_UNTAGGED_HEADER)))
         goto fail1;
 
     Header = (PETHERNET_HEADER)(StartVa + Offset);
@@ -512,10 +559,12 @@ __ParseEthernetHeader(
         Extra = sizeof (ETHERNET_TAGGED_HEADER) -
                 sizeof (ETHERNET_UNTAGGED_HEADER);
 
-        if (!Pullup(Argument,
-                    StartVa + Offset,
-                    Payload,
-                    Extra))
+        if (!__ParsePullup(Pullup,
+                           Argument,
+                           StartVa,
+                           Offset,
+                           Payload,
+                           Extra))
             goto fail2;
 
         Offset += Extra;
-- 
2.51.2.windows.1



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 12:22:26 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 12:22:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353281.1609285 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfcuY-0004Qp-3i; Fri, 03 Jul 2026 12:22:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353281.1609285; Fri, 03 Jul 2026 12:22:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfcuY-0004Qi-1A; Fri, 03 Jul 2026 12:22:26 +0000
Received: by outflank-mailman (input) for mailman id 1353281;
 Fri, 03 Jul 2026 12:22:24 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1wfcuW-0004PT-Mi
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 12:22:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfcuW-008zqe-3a
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 14:22:24 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a47a970-5cb7-0a2a0a5109dd-0a2a450be80e-22
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 14:22:24 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a47a97e-ac48-0a2a450b0019-a0658309b8e6-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 14:22:23 +0200
Received: from mewpvdipd2033.citrite.net (unknown [10.113.48.64])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id CEEFD82C96B8;
 Fri,  3 Jul 2026 08:20:50 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Owen Smith <owen.smith@citrix.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [PATCH 2/2] Validate buffer length in ParsePacket
Date: Fri,  3 Jul 2026 13:22:16 +0100
Message-ID: <20260703122217.57-2-owen.smith@citrix.com>
X-Mailer: git-send-email 2.51.2.windows.1
In-Reply-To: <20260703122217.57-1-owen.smith@citrix.com>
References: <20260703122217.57-1-owen.smith@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1783081343-3874F220-8DC6441F/0/0
X-purgate-type: clean
X-purgate-size: 12853

By passing the destination buffer length to ParsePacket, its possible to
detect a potential buffer overrun. This is likely only an issue when
TransmitterQueuePacket attempts to parse an IPv6 packet with sufficient
option headers to exceed XENVIF_TRANSMITTER_MAXIMUM_HEADER_LENGTH (512 bytes)

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xenvif/parse.c       | 36 ++++++++++++++++++++++++++++++++++++
 src/xenvif/parse.h       |  1 +
 src/xenvif/receiver.c    |  7 ++++++-
 src/xenvif/transmitter.c |  7 ++++++-
 4 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/xenvif/parse.c b/src/xenvif/parse.c
index 2e5000d..4f4f773 100644
--- a/src/xenvif/parse.c
+++ b/src/xenvif/parse.c
@@ -49,11 +49,17 @@ __ParsePullup(
     IN      XENVIF_PARSE_PULLUP         Pullup,
     IN      PVOID                       Argument,
     IN      PUCHAR                      StartVa,
+    IN      ULONG                       StartLen,
     IN      ULONG                       Offset,
     IN      PXENVIF_PACKET_PAYLOAD      Payload,
     IN      ULONG                       Length
     )
 {
+    ASSERT3U(StartLen, >, Offset);
+
+    if (StartLen - Offset < Length)
+        return FALSE;
+
     return Pullup(Argument,
                   StartVa + Offset,
                   Payload,
@@ -63,6 +69,7 @@ __ParsePullup(
 static FORCEINLINE NTSTATUS
 __ParseTcpHeader(
     IN      PUCHAR                      StartVa,
+    IN      ULONG                       StartLen,
     IN      ULONG                       Offset,
     IN      XENVIF_PARSE_PULLUP         Pullup,
     IN      PVOID                       Argument,
@@ -77,6 +84,7 @@ __ParseTcpHeader(
     if (!__ParsePullup(Pullup,
                        Argument,
                        StartVa,
+                       StartLen,
                        Offset,
                        Payload,
                        sizeof (TCP_HEADER)))
@@ -101,6 +109,7 @@ __ParseTcpHeader(
         if (!__ParsePullup(Pullup,
                            Argument,
                            StartVa,
+                           StartLen,
                            Offset,
                            Payload,
                            Extra))
@@ -130,6 +139,7 @@ fail1:
 static FORCEINLINE NTSTATUS
 __ParseUdpHeader(
     IN      PUCHAR                      StartVa,
+    IN      ULONG                       StartLen,
     IN      ULONG                       Offset,
     IN      XENVIF_PARSE_PULLUP         Pullup,
     IN      PVOID                       Argument,
@@ -142,6 +152,7 @@ __ParseUdpHeader(
     if (!__ParsePullup(Pullup,
                        Argument,
                        StartVa,
+                       StartLen,
                        Offset,
                        Payload,
                        sizeof (UDP_HEADER)))
@@ -164,6 +175,7 @@ fail1:
 static FORCEINLINE NTSTATUS
 __ParseIpVersion4Header(
     IN      PUCHAR                      StartVa,
+    IN      ULONG                       StartLen,
     IN      ULONG                       Offset,
     IN      XENVIF_PARSE_PULLUP         Pullup,
     IN      PVOID                       Argument,
@@ -181,6 +193,7 @@ __ParseIpVersion4Header(
     if (!__ParsePullup(Pullup,
                        Argument,
                        StartVa,
+                       StartLen,
                        Offset,
                        Payload,
                        sizeof (IPV4_HEADER)))
@@ -211,6 +224,7 @@ __ParseIpVersion4Header(
         if (!__ParsePullup(Pullup,
                            Argument,
                            StartVa,
+                           StartLen,
                            Offset,
                            Payload,
                            Extra))
@@ -233,6 +247,7 @@ __ParseIpVersion4Header(
     switch (Header->Protocol) {
     case IPPROTO_TCP:
         status = __ParseTcpHeader(StartVa,
+                                  StartLen,
                                   Offset,
                                   Pullup,
                                   Argument,
@@ -242,6 +257,7 @@ __ParseIpVersion4Header(
 
     case IPPROTO_UDP:
         status = __ParseUdpHeader(StartVa,
+                                  StartLen,
                                   Offset,
                                   Pullup,
                                   Argument,
@@ -274,6 +290,7 @@ fail1:
 static FORCEINLINE NTSTATUS
 __ParseIpVersion6Header(
     IN      PUCHAR                      StartVa,
+    IN      ULONG                       StartLen,
     IN      ULONG                       Offset,
     IN      XENVIF_PARSE_PULLUP         Pullup,
     IN      PVOID                       Argument,
@@ -293,6 +310,7 @@ __ParseIpVersion6Header(
     if (!__ParsePullup(Pullup,
                        Argument,
                        StartVa,
+                       StartLen,
                        Offset,
                        Payload,
                        sizeof (IPV6_HEADER)))
@@ -325,6 +343,7 @@ __ParseIpVersion6Header(
             if (!__ParsePullup(Pullup,
                                Argument,
                                StartVa,
+                               StartLen,
                                Offset,
                                Payload,
                                sizeof (IPV6_FRAGMENT_HEADER)))
@@ -346,6 +365,7 @@ __ParseIpVersion6Header(
             if (!__ParsePullup(Pullup,
                                Argument,
                                StartVa,
+                               StartLen,
                                Offset,
                                Payload,
                                sizeof (IP_AUTHENTICATION_HEADER)))
@@ -360,6 +380,7 @@ __ParseIpVersion6Header(
             if (!__ParsePullup(Pullup,
                                Argument,
                                StartVa,
+                               StartLen,
                                Offset,
                                Payload,
                                Extra))
@@ -379,6 +400,7 @@ __ParseIpVersion6Header(
             if (!__ParsePullup(Pullup,
                                Argument,
                                StartVa,
+                               StartLen,
                                Offset,
                                Payload,
                                sizeof (IPV6_OPTION_HEADER)))
@@ -393,6 +415,7 @@ __ParseIpVersion6Header(
             if (!__ParsePullup(Pullup,
                                Argument,
                                StartVa,
+                               StartLen,
                                Offset,
                                Payload,
                                Extra))
@@ -427,6 +450,7 @@ __ParseIpVersion6Header(
     switch (NextHeader) {
     case IPPROTO_TCP:
         status = __ParseTcpHeader(StartVa,
+                                  StartLen,
                                   Offset,
                                   Pullup,
                                   Argument,
@@ -436,6 +460,7 @@ __ParseIpVersion6Header(
 
     case IPPROTO_UDP:
         status = __ParseUdpHeader(StartVa,
+                                  StartLen,
                                   Offset,
                                   Pullup,
                                   Argument,
@@ -469,6 +494,7 @@ fail1:
 static FORCEINLINE NTSTATUS
 __ParseLLCSnapHeader(
     IN      PUCHAR                      StartVa,
+    IN      ULONG                       StartLen,
     IN      ULONG                       Offset,
     IN      XENVIF_PARSE_PULLUP         Pullup,
     IN      PVOID                       Argument,
@@ -483,6 +509,7 @@ __ParseLLCSnapHeader(
     if (!__ParsePullup(Pullup,
                        Argument,
                        StartVa,
+                       StartLen,
                        Offset,
                        Payload,
                        sizeof (LLC_U_HEADER)))
@@ -501,6 +528,7 @@ __ParseLLCSnapHeader(
         if (!__ParsePullup(Pullup,
                            Argument,
                            StartVa,
+                           StartLen,
                            Offset,
                            Payload,
                            Extra))
@@ -525,6 +553,7 @@ fail1:
 static FORCEINLINE NTSTATUS
 __ParseEthernetHeader(
     IN      PUCHAR                      StartVa,
+    IN      ULONG                       StartLen,
     IN      ULONG                       Offset,
     IN      XENVIF_PARSE_PULLUP         Pullup,
     IN      PVOID                       Argument,
@@ -542,6 +571,7 @@ __ParseEthernetHeader(
     if (!__ParsePullup(Pullup,
                        Argument,
                        StartVa,
+                       StartLen,
                        Offset,
                        Payload,
                        sizeof (ETHERNET_UNTAGGED_HEADER)))
@@ -562,6 +592,7 @@ __ParseEthernetHeader(
         if (!__ParsePullup(Pullup,
                            Argument,
                            StartVa,
+                           StartLen,
                            Offset,
                            Payload,
                            Extra))
@@ -580,6 +611,7 @@ __ParseEthernetHeader(
 
     if (IsLLC) {
         status = __ParseLLCSnapHeader(StartVa,
+                                      StartLen,
                                       Offset,
                                       Pullup,
                                       Argument,
@@ -589,6 +621,7 @@ __ParseEthernetHeader(
         switch (TypeOrLength) {
         case ETHERTYPE_IPV4:
             status = __ParseIpVersion4Header(StartVa,
+                                             StartLen,
                                              Offset,
                                              Pullup,
                                              Argument,
@@ -598,6 +631,7 @@ __ParseEthernetHeader(
 
         case ETHERTYPE_IPV6:
             status = __ParseIpVersion6Header(StartVa,
+                                             StartLen,
                                              Offset,
                                              Pullup,
                                              Argument,
@@ -623,6 +657,7 @@ fail1:
 NTSTATUS
 ParsePacket(
     IN      PUCHAR                      StartVa,
+    IN      ULONG                       StartLen,
     IN      XENVIF_PARSE_PULLUP         Pullup,
     IN      PVOID                       Argument,
     IN OUT  PXENVIF_PACKET_PAYLOAD      Payload,
@@ -632,6 +667,7 @@ ParsePacket(
     ASSERT(IsZeroMemory(Info, sizeof (XENVIF_PACKET_INFO)));
 
     return __ParseEthernetHeader(StartVa,
+                                 StartLen,
                                  0,
                                  Pullup,
                                  Argument,
diff --git a/src/xenvif/parse.h b/src/xenvif/parse.h
index d00d962..678991a 100644
--- a/src/xenvif/parse.h
+++ b/src/xenvif/parse.h
@@ -52,6 +52,7 @@ typedef BOOLEAN
 extern NTSTATUS
 ParsePacket(
     IN      PUCHAR                  StartVa,
+    IN      ULONG                   StartLen,
     IN      XENVIF_PARSE_PULLUP     Pullup,
     IN      PVOID                   Argument,
     IN OUT  PXENVIF_PACKET_PAYLOAD  Payload,
diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
index 0ed46e6..14e8d0b 100644
--- a/src/xenvif/receiver.c
+++ b/src/xenvif/receiver.c
@@ -1268,7 +1268,12 @@ ReceiverRingProcessPacket(
 
     Info = &Packet->Info;
 
-    status = ParsePacket(BaseVa, ReceiverRingPullup, Ring, &Payload, Info);
+    status = ParsePacket(BaseVa,
+                         PAGE_SIZE - Packet->Offset,
+                         ReceiverRingPullup,
+                         Ring,
+                         &Payload,
+                         Info);
     if (!NT_SUCCESS(status)) {
         FrontendIncrementStatistic(Frontend,
                                    XENVIF_RECEIVER_FRONTEND_ERRORS,
diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
index 41d0f3c..b78a090 100644
--- a/src/xenvif/transmitter.c
+++ b/src/xenvif/transmitter.c
@@ -5209,7 +5209,12 @@ TransmitterQueuePacket(
 
     Info = &Packet->Info;
 
-    (VOID) ParsePacket(BaseVa, TransmitterPullup, Transmitter, Payload, Info);
+    (VOID) ParsePacket(BaseVa,
+                       XENVIF_TRANSMITTER_MAXIMUM_HEADER_LENGTH,
+                       TransmitterPullup,
+                       Transmitter,
+                       Payload,
+                       Info);
 
     Algorithm = Hash->Algorithm;
 
-- 
2.51.2.windows.1



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:30:56 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:30:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353681.1609390 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjbC-0006px-J2; Fri, 03 Jul 2026 19:30:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353681.1609390; Fri, 03 Jul 2026 19:30:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjbC-0006pp-Fy; Fri, 03 Jul 2026 19:30:54 +0000
Received: by outflank-mailman (input) for mailman id 1353681;
 Fri, 03 Jul 2026 19:30:53 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@swg.vates.tech>)
 id 1wfjbA-0006pi-GM
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:30:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjb9-000TlN-TU
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:30:51 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@swg.vates.tech>)
 id 6a480d98-e002-0a2a0a5209dd-0a2a4507bc4c-44
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:30:51 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@swg.vates.tech>)
 id 6a480deb-9c8e-0a2a45070019-b9ff1c22b64b-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:30:51 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f2976569000080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:30:49 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 5360080B2A
 for <win-pv-devel@lists.xenproject.org>; Fri,  3 Jul 2026 21:30:48 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=Yo9dVIGiVGMEJwL7Zyn4nIJUMx2mzD1yPSaxLwG51n0=;
 h=from:subject:date:message-id:to:mime-version:content-type:feedback-id;
 b=SDTEQQeiMJZuFI0htMGyNge0wSlYDGxGBBtKlZShLOcT7/4nZ39TKs9RDOeCR0rXN2Ch067mD
 Ftb7FXG57A9fh1LFpJlEESJN2qbrM84Skn8mssenNtcBtQYBkUNdDWb0hbkHVC2eDt4ro8TeN2R
 eXictreGNWp//V8VWEGkrmUgGdVD1AoXITt2Cfcm9LxYrwphea1Z7lrj7edSUCFwMSpNXi2AW8w
 uJHItx0oZRqGCdShpHWCcmC+FAn31Qtqhgauz7fy9xHJ17jjPUHbYu1/XVxRsrNnaX4xZFHA1fW
 s6Lbrf3sMr8+Mr/NUeD8QinVqgnN2+8ceRO4JaHEPRbA==
X-Zone-Loop: fa07ac3c8c03ae0779b2bb09155d4d031ff9ada872e0
x-campaign-type: default
x-transaction-id: 49cb0846-66a6-48ba-a52d-24c70d404fb5
x-swg-uid: 01-e0d0e3ee-669a-433b-ab75-a09eedaff975
X-Mailer: Sweego
Message-ID:
 <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
x-swg-bid: 1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 3 Jul 2026 21:30:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Xenvif non-zero byte assertion error during teardown
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f0.9f20f2637cc93e5b.19f297653ba.1a96548d643ddb9b=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107048383
X-purgate-ID: tlsNG-ef75cf/1783107051-FE73925E-373D6314/0/0
X-purgate-type: clean
X-purgate-size: 2646

---=Part.f0.9f20f2637cc93e5b.19f297653ba.1a96548d643ddb9b=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

It's possible for xenvif to hit an assertion error during teardown due=20
to non-zero bytes in the _XENVIF_FRONTEND struct:

xenvif|_IsZeroMemory: FrontendTeardown: non-zero byte in Frontend=20
(0xFFFF84857C8D6AD0+0x64)
xenvif|FrontendTeardown: ASSERTION FAILED: _IsZeroMemory(__FSTREXP=20
__FUNCTION__  , "Frontend", (Frontend), (sizeof (XENVIF_FRONTEND)))

0x64 belongs to padding area:

0:000> dt xenvif!_XENVIF_FRONTEND
    +0x000 Pdo              : Ptr64 _XENVIF_PDO
    +0x008 Path             : Ptr64 Char
    +0x010 Prefix           : Ptr64 Char
    +0x018 State            : _XENVIF_FRONTEND_STATE
    +0x01c Online           : UChar
    +0x020 Lock             : Uint8B
    +0x028 EjectThread      : Ptr64 _XENVIF_THREAD
    +0x030 EjectEvent       : _KEVENT
    +0x048 BackendPath      : Ptr64 Char
    +0x050 BackendDomain    : Uint2B
    +0x054 MaxQueues        : Uint4B
    +0x058 NumQueues        : Uint4B
    +0x05c Split            : UChar
    +0x060 DisableToeplitz  : Uint4B
    +0x068 Mac              : Ptr64 _XENVIF_MAC
    +0x070 Receiver         : Ptr64 _XENVIF_RECEIVER
    +0x078 Transmitter      : Ptr64 _XENVIF_TRANSMITTER
    +0x080 Controller       : Ptr64 _XENVIF_CONTROLLER
    +0x088 DebugInterface   : _XENBUS_DEBUG_INTERFACE_V1
    +0x0d8 SuspendInterface : _XENBUS_SUSPEND_INTERFACE_V1
    +0x128 StoreInterface   : _XENBUS_STORE_INTERFACE_V2
    +0x1b0 SuspendCallbackEarly : Ptr64 _XENBUS_SUSPEND_CALLBACK
    +0x1b8 SuspendCallbackLate : Ptr64 _XENBUS_SUSPEND_CALLBACK
    +0x1c0 DebugCallback    : Ptr64 _XENBUS_DEBUG_CALLBACK
    +0x1c8 Watch            : Ptr64 _XENBUS_STORE_WATCH
    +0x1d0 Statistics       : Ptr64 _XENVIF_FRONTEND_STATISTICS
    +0x1d8 StatisticsCount  : Uint4B
    +0x1e0 MibThread        : Ptr64 _XENVIF_THREAD
    +0x1e8 Alias            : [257] Char
    +0x2ec InterfaceIndex   : Uint4B
    +0x2f0 AddressTable     : Ptr64 _SOCKADDR_INET
    +0x2f8 AddressCount     : Uint4B
    +0x2fc Hash             : _XENVIF_FRONTEND_HASH

struct _XENVIF_FRONTEND (and likely other structs) are in general full=20
of similar padding=2E So the ASSERT(IsZeroMemory(Frontend)) check is too=
=20
strict in most cases=2E

I think current IsZeroMemory asserts should either be removed or=20
converted to a print-only warning=2E


-- 
 | Vates 

XCP-ng & Xen Orchestra - Vates solutions

web: https://vate=
s=2Etech
---=Part.f0.9f20f2637cc93e5b.19f297653ba.1a96548d643ddb9b=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:39:06 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:39:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353688.1609397 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjj7-00078F-6h; Fri, 03 Jul 2026 19:39:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353688.1609397; Fri, 03 Jul 2026 19:39:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjj7-000788-4F; Fri, 03 Jul 2026 19:39:05 +0000
Received: by outflank-mailman (input) for mailman id 1353688;
 Fri, 03 Jul 2026 19:39:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@swg.vates.tech>)
 id 1wfjj5-000780-QN
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:39:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjj5-00CREi-7E
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:39:03 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@swg.vates.tech>)
 id 6a480fb7-bab6-0a2a0a5309dd-0a2a4505c0a2-18
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:02 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@swg.vates.tech>)
 id 6a480fd6-3cb2-0a2a45050019-b9ff1c23935f-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:02 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f297dd7b200080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:39:00 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 3C5B0803E7;
 Fri,  3 Jul 2026 21:39:00 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=kVgWqCVNAbIs1ptosuF10EU1EmEi5wtnwXLU5N7STdM=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=VM6Zqs7S1HkABuq724npisOmv/ixqf04wA5IoQUXaCqkaAxlsZgHCm+TGRtw/4h1WL0S3oQvX
 1K3kODvzrBu1TcQwI1fesIcto0XQFuzZ+Zuxt8dj1V4HVvWFPMxgGHQeXwfpE7J7iBNECeAMAiP
 KF5eUwia8aUhHESm1oG77jXc10YvNdsyUv4B42Cgx+cLWBZ3jTMLNyFuU3JQBjL2Dgk1g0nNwdA
 jmawvN7NBVRhv3MSZPnM085/nUZDkeQ1Id8RZsUrY9pIzPNzT6u1HAElaPBT9jDHyX9rpVZbT/k
 eQfVR/WSuqSP9bUq7ZV3gBTyRVvhvnTqFcTHCgnoxBbw==
X-Zone-Loop: fd96e7d5825fb867df8cda409b2730283468affc27bb
x-campaign-type: default
x-transaction-id: e650d1d6-0141-4829-b23c-a11a82907849
x-swg-uid: 01-a5aa0e7d-4e3a-467e-8e5a-f873d0bd9bba
X-Mailer: Sweego
Message-ID:
 <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
x-swg-bid: 1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH] Do not fail assertions of IsZeroMemory
Date: Fri,  3 Jul 2026 21:38:55 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f1.757cacc6aa423ad8.19f297dd578.412dcb33bd37da7b=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107540344
X-purgate-ID: tlsNG-c201ff/1783107542-16D162B8-BE744FAA/0/0
X-purgate-type: clean
X-purgate-size: 1188

---=Part.f1.757cacc6aa423ad8.19f297dd578.412dcb33bd37da7b=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The Windows drivers currently use IsZeroMemory to test many structs that
contain padding=2E This may cause spurious assertion failures=2E

Make IsZeroMemory always return true, but keep the error reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/common/assert=2Eh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/common/assert=2Eh b/src/common/assert=2Eh
index 4724a4b=2E=2E5edf44c 100644
--- a/src/common/assert=2Eh
+++ b/src/common/assert=2Eh
@@ -166,7 +166,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             Error("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Name, =
Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f1.757cacc6aa423ad8.19f297dd578.412dcb33bd37da7b=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:39:26 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:39:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353689.1609402 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjjS-0007Az-8y; Fri, 03 Jul 2026 19:39:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353689.1609402; Fri, 03 Jul 2026 19:39:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjjS-0007As-6B; Fri, 03 Jul 2026 19:39:26 +0000
Received: by outflank-mailman (input) for mailman id 1353689;
 Fri, 03 Jul 2026 19:39:24 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e20a400080a8@swg.vates.tech>)
 id 1wfjjQ-0007Ai-E9
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:39:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjjP-00CRVj-26
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:39:23 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e20a400080a8@swg.vates.tech>)
 id 6a480fb3-5cb7-0a2a0a5109dd-0a2a450aa8b2-24
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:22 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e20a400080a8@swg.vates.tech>)
 id 6a480fea-e40e-0a2a450a0019-b9ff1c22acbb-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:22 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f297e20a400080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:39:19 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 06344803E7;
 Fri,  3 Jul 2026 21:39:19 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=l9+sk1iBoYHM2TQMmpXj9JuQ1GjxK5Dqx15LTANQ9yg=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=bXfhCa9nplhmO8LaYxDQ9w5HFEn7NOajlcr/cngw936ZRDJ83uoyWdzp5hgrZQ4GbVRMDLf7t
 PFZqzNaQuIChnG67WgslKuMCZk3eEOU8HkViQNYIbTZ7qpaOoidL9trBaikyxCXM+il8BM0+Rzt
 EePWe96dqOktJxZYltOu/bpbZ6kBSIyFiesfhAqlroFJRwCW+aXTXMHRCn9wh0nNrSwSEejkrUl
 1/p+JxPkqyVjiEgHEWZ4e2oDQio8vnIdhaa8RlkDVn1I5LfTEPi+LWqCLOMcfk50s62tSNim+eZ
 mGEGyzxWjUXiM2wGh+p/XuX0Un7r8N/z4gmt2AZe9D3g==
X-Zone-Loop: 5d7132675148aca4fd5c4c9fa8a665ba224c808827ef
x-campaign-type: default
x-transaction-id: 5fda6f0b-f735-4494-91d1-82dfce13a418
x-swg-uid: 01-e51c8685-ca20-4f27-9af5-3a70e8c59989
X-Mailer: Sweego
Message-ID:
 <1783107559.8631fc262581453bbf619ec5b2062170.19f297e20a400080a8@vates.tech>
x-swg-bid: 1783107559.8631fc262581453bbf619ec5b2062170.19f297e20a400080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH] Do not fail assertions of IsZeroMemory
Date: Fri,  3 Jul 2026 21:39:14 +0200
In-Reply-To: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
References: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f2.1aa1f2928fdb5740.19f297e1ed0.5fd5dca526b79964=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107559120
X-purgate-ID: tlsNG-4011c0/1783107562-D5328DDE-BC03AB90/0/0
X-purgate-type: clean
X-purgate-size: 1193

---=Part.f2.1aa1f2928fdb5740.19f297e1ed0.5fd5dca526b79964=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The Windows drivers currently use IsZeroMemory to test many structs that
contain padding=2E This may cause spurious assertion failures=2E

Make IsZeroMemory always return true, but keep the error reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xencons/assert=2Eh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xencons/assert=2Eh b/src/xencons/assert=2Eh
index 9db2d0c=2E=2E64290cd 100644
--- a/src/xencons/assert=2Eh
+++ b/src/xencons/assert=2Eh
@@ -166,7 +166,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             Error("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Name, =
Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f2.1aa1f2928fdb5740.19f297e1ed0.5fd5dca526b79964=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:39:35 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353691.1609405 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjjb-0007DJ-AF; Fri, 03 Jul 2026 19:39:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353691.1609405; Fri, 03 Jul 2026 19:39:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjjb-0007DC-7h; Fri, 03 Jul 2026 19:39:35 +0000
Received: by outflank-mailman (input) for mailman id 1353691;
 Fri, 03 Jul 2026 19:39:33 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e49b500080a8@swg.vates.tech>)
 id 1wfjjZ-0007Cz-Fs
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:39:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjjY-00CRVj-Sw
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:39:32 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e49b500080a8@swg.vates.tech>)
 id 6a480fc3-5cb7-0a2a0a5109dd-0a2a4506d33e-32
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:32 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e49b500080a8@swg.vates.tech>)
 id 6a480ff4-08de-0a2a45060019-b9ff1c23b5af-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:32 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f297e49b500080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:39:30 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 8A524803E7;
 Fri,  3 Jul 2026 21:39:29 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=03Grd89nRuZJ4ENC5t9kJKf1Al+qd3vIKI4hw8bM5pY=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=RPL2smJ2XyHnIlJpyUuS+8DHajIUOSlWSVfeOtCIbzEXQ5K5hQ04vUn3ULGV3Dh0C3u10+49a
 zMCD3PUAd/8Vlijqm4xYHfSL4zSM2uLn2j/k1H8B2E2o7W7g4vI1q8qmEozLP/UXWcvhiADLpne
 1PY1mEoxW+Pf/4U6xEuwMdIxp2/AujNXc0R8sra2JYif+z/cyaYGDAmRMYXEZyWYFEicJEJb8za
 De3VnT3p2sid4yexPrTgVVnYrikEwkjPoyGpqsqujtMGrKW+Ig6YtGMXC8VKZgsGCBjaN+C2c6c
 37dt74x4M40+liN3jBYiHX+HhXhR3S7QJH8UzJtcon+Q==
X-Zone-Loop: f083b4a693243db49d0a5ebdaa5871951d93781e22b4
x-campaign-type: default
x-transaction-id: 23e6b18c-e9eb-41a8-b14c-21707b8f5d39
x-swg-uid: 01-fc27294d-e389-4789-b721-fa47a7db27dd
X-Mailer: Sweego
Message-ID:
 <1783107570.8631fc262581453bbf619ec5b2062170.19f297e49b500080a8@vates.tech>
x-swg-bid: 1783107570.8631fc262581453bbf619ec5b2062170.19f297e49b500080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH] Do not fail assertions of IsZeroMemory
Date: Fri,  3 Jul 2026 21:39:25 +0200
In-Reply-To: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
References: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f3.334ab429d8f2d67f.19f297e47fd.962371544e2336f1=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107569662
X-purgate-ID: tlsNG-16d1c6/1783107572-4312768D-8080DFA1/0/0
X-purgate-type: clean
X-purgate-size: 1188

---=Part.f3.334ab429d8f2d67f.19f297e47fd.962371544e2336f1=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The Windows drivers currently use IsZeroMemory to test many structs that
contain padding=2E This may cause spurious assertion failures=2E

Make IsZeroMemory always return true, but keep the error reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenhid/assert=2Eh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenhid/assert=2Eh b/src/xenhid/assert=2Eh
index 913938d=2E=2Eff6905d 100644
--- a/src/xenhid/assert=2Eh
+++ b/src/xenhid/assert=2Eh
@@ -166,7 +166,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             Error("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Name, =
Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f3.334ab429d8f2d67f.19f297e47fd.962371544e2336f1=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:39:40 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353692.1609410 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjjg-0007Fd-C2; Fri, 03 Jul 2026 19:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353692.1609410; Fri, 03 Jul 2026 19:39:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjjg-0007FW-98; Fri, 03 Jul 2026 19:39:40 +0000
Received: by outflank-mailman (input) for mailman id 1353692;
 Fri, 03 Jul 2026 19:39:38 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e661200080a8@swg.vates.tech>)
 id 1wfjje-0007F9-PA
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:39:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjjd-000XcB-T9
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:39:37 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e661200080a8@swg.vates.tech>)
 id 6a480ff7-2eae-0a2a0a5409dd-0a2a4501dbda-4
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:37 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e661200080a8@swg.vates.tech>)
 id 6a480ff9-400f-0a2a45010019-b9ff1c12920b-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:37 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f297e661200080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:39:37 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id C5F5680510;
 Fri,  3 Jul 2026 21:39:36 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=FtX8LIgIm5LGaz2w5nMm/AATuun/ZEvxXlB1nmqov/I=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=XfBv/xy9Ot2vHECnyricaUECSuRcXsA6LVJ/gtcWF/fiSxZBN+o8FK58gc2ZorTTZraGDyJqM
 WZvlfvOKy4VaDIrioG7aeRqGsMseQSZ4PC9ldA5+9XG4yLWgKSOAlL8GougFGlXIN1sr1uu5n/l
 uMaaDJm/29kf1DoD0NOggEJRWfJBq9vFmY3lkGLRhhccmr1iRsqK1HzfGU1mGA7cr9UVo38W86Z
 9NEEIa/axC2GezkG3hC7TysZhLHsE391O4wnnE83ASQaSKeArfNdpz0kARvnlNgC0ngjrWkQQKc
 i/ka31vb0AYw/6yb5hA/Q0pPbRg9Eey2ADC6O5GEs02A==
X-Zone-Loop: 7e7cd3dd0375631ec4314536a05b7a78c40cef971710
x-campaign-type: default
x-transaction-id: 3d423cc4-9f94-4e0c-a794-a05f564399a6
x-swg-uid: 01-68255597-2347-4787-a1de-d57b79316e6a
X-Mailer: Sweego
Message-ID:
 <1783107577.8631fc262581453bbf619ec5b2062170.19f297e661200080a8@vates.tech>
x-swg-bid: 1783107577.8631fc262581453bbf619ec5b2062170.19f297e661200080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH] Do not fail assertions of IsZeroMemory
Date: Fri,  3 Jul 2026 21:39:33 +0200
In-Reply-To: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
References: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f4.f00853e22688bed7.19f297e6449.aad4ce36f4536dd5=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107576905
X-purgate-ID: tlsNG-d62444/1783107577-822DD1E0-B8811FA5/0/0
X-purgate-type: clean
X-purgate-size: 1198

---=Part.f4.f00853e22688bed7.19f297e6449.aad4ce36f4536dd5=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The Windows drivers currently use IsZeroMemory to test many structs that
contain padding=2E This may cause spurious assertion failures=2E

Make IsZeroMemory always return true, but keep the error reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xeniface/assert=2Eh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xeniface/assert=2Eh b/src/xeniface/assert=2Eh
index d4d977b=2E=2E406b43e 100644
--- a/src/xeniface/assert=2Eh
+++ b/src/xeniface/assert=2Eh
@@ -166,7 +166,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             Error("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Name, =
Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f4.f00853e22688bed7.19f297e6449.aad4ce36f4536dd5=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:39:55 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:39:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353694.1609414 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjjv-0007JZ-DM; Fri, 03 Jul 2026 19:39:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353694.1609414; Fri, 03 Jul 2026 19:39:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjjv-0007JS-An; Fri, 03 Jul 2026 19:39:55 +0000
Received: by outflank-mailman (input) for mailman id 1353694;
 Fri, 03 Jul 2026 19:39:53 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e9cd200080a8@swg.vates.tech>)
 id 1wfjjt-0007JI-PB
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:39:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjjt-00CRVj-68
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:39:53 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e9cd200080a8@swg.vates.tech>)
 id 6a480f9c-5cb7-0a2a0a5109dd-0a2a450b95be-36
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:53 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297e9cd200080a8@swg.vates.tech>)
 id 6a481008-ac48-0a2a450b0019-b9ff1c229925-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:39:53 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f297e9cd200080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:39:51 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id BF09D803E7;
 Fri,  3 Jul 2026 21:39:50 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=DfWH06mKtYjwxyLZFr4paICpCOXV4YlSd4pxGmhJGO0=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=q9jTccP54V+E8J5b6Un6r8EF7RW0aCVvMrZRlzw2xHRS1fLuJ8m6Ps17PydWjiy9aPTjp/P22
 VnpYZcD4nm2kuPifP6B0KjdB5TxA38N8TS0s9014xFrOlsecatG1mcwHeDAWby8CS+OWZDEgEWr
 F+0XVd/VuDhD4sXB3RdYD6TFCSP4SNUA5vudVtsbk87eAPNgFvwExvt9cIH97rBbSdXGdByErTS
 OqW/HRru2Ira6IuuPiHh8VF8YZyaYjuvbOJUhWl5mu0pkADKg4tI6n9y5Or1PgEawFGYLdSYtx2
 E9c6twK8yB0ZDwvzkc5T4Z15SeKtGdBgfa8EHLeDATfg==
X-Zone-Loop: aa5b21849c8f0ace0db5162ad93ca7f4138a28694158
x-campaign-type: default
x-transaction-id: 706a9d86-2840-495e-bf88-b0533cbfe951
x-swg-uid: 01-dbfa48cf-a76e-4123-8252-45b3245ac779
X-Mailer: Sweego
Message-ID:
 <1783107591.8631fc262581453bbf619ec5b2062170.19f297e9cd200080a8@vates.tech>
x-swg-bid: 1783107591.8631fc262581453bbf619ec5b2062170.19f297e9cd200080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH] Do not fail assertions of IsZeroMemory
Date: Fri,  3 Jul 2026 21:39:47 +0200
In-Reply-To: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
References: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f5.8c18272f40f02e3b.19f297e9add.1b85f484ec1a7354=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107590877
X-purgate-ID: tlsNG-42698a/1783107593-A5921220-CE2C66CA/0/0
X-purgate-type: clean
X-purgate-size: 1188

---=Part.f5.8c18272f40f02e3b.19f297e9add.1b85f484ec1a7354=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The Windows drivers currently use IsZeroMemory to test many structs that
contain padding=2E This may cause spurious assertion failures=2E

Make IsZeroMemory always return true, but keep the error reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xennet/assert=2Eh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xennet/assert=2Eh b/src/xennet/assert=2Eh
index 53c8061=2E=2E77641e2 100644
--- a/src/xennet/assert=2Eh
+++ b/src/xennet/assert=2Eh
@@ -166,7 +166,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             Error("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Name, =
Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f5.8c18272f40f02e3b.19f297e9add.1b85f484ec1a7354=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:40:05 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353695.1609417 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjk5-0008B3-Ev; Fri, 03 Jul 2026 19:40:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353695.1609417; Fri, 03 Jul 2026 19:40:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjk5-0008Ai-CJ; Fri, 03 Jul 2026 19:40:05 +0000
Received: by outflank-mailman (input) for mailman id 1353695;
 Fri, 03 Jul 2026 19:40:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ebf0400080a8@swg.vates.tech>)
 id 1wfjk4-0007u0-5M
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:40:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjk3-00B3Nc-IM
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:40:03 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ebf0400080a8@swg.vates.tech>)
 id 6a480fa2-bab6-0a2a0a5309dd-0a2a4504a876-40
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:40:03 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ebf0400080a8@swg.vates.tech>)
 id 6a481013-a01d-0a2a45040019-b9ff1c12996b-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:40:03 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f297ebf0400080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:40:00 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 93795803E7;
 Fri,  3 Jul 2026 21:39:59 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=kWBxTcP3LH//lU91TBoOb665b2KVS7pJ/nA+cxaTnnc=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=oiEUvd/q005r3pL0xJUHbt/jPipCwnJnY9ASVexCdlRXcJkjMVe+xeUHXyUuoP39Wl1eviwKe
 eYNIQ//9KYRp1AhD5veO2Nn53eBz/VgtB7Zv1wV7/wUnpuYrKrtb6TWARLeKgPQCjeNeh8hvfBd
 vyYhafoAe350OGZpjsXT+vgo4YaU2DosH0b+/p7O2keWfdzqrtj1C0VSabadS0VxxAzIQ17rqLG
 uU5IK0na9WScF+cLzWZ93EJoXcrmbGTBpJXJKE2d6/uOdfb4IweCb2uJtCmZsEC475nnQInlfBf
 DIhVn6MnYMxsA51ECj9JIesMcgPTQmoTPtaC0vHyC+MQ==
X-Zone-Loop: 0a3584e5d3c3f64a2e9e2b035591131dab6c2d0befe4
x-campaign-type: default
x-transaction-id: 055d89a7-6d9f-45bf-b4fe-9c15e086297b
x-swg-uid: 01-e52f939e-2d6f-451c-8259-7496ab09e905
X-Mailer: Sweego
Message-ID:
 <1783107600.8631fc262581453bbf619ec5b2062170.19f297ebf0400080a8@vates.tech>
x-swg-bid: 1783107600.8631fc262581453bbf619ec5b2062170.19f297ebf0400080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH] Do not fail assertions of IsZeroMemory
Date: Fri,  3 Jul 2026 21:39:58 +0200
In-Reply-To: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
References: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f6.839c65ffbd511fdd.19f297ebd2c.a8e4b9c035b5c8f4=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107599660
X-purgate-ID: tlsNG-ebf023/1783107603-AE5281CC-EE4739D6/0/0
X-purgate-type: clean
X-purgate-size: 1693

---=Part.f6.839c65ffbd511fdd.19f297ebd2c.a8e4b9c035b5c8f4=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The Windows drivers currently use IsZeroMemory to test many structs that
contain padding=2E This may cause spurious assertion failures=2E

Make IsZeroMemory always return true, but keep the error reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xencrsh/assert=2Eh | 2 +-
 src/xenvbd/assert=2Eh  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xencrsh/assert=2Eh b/src/xencrsh/assert=2Eh
index b709a19=2E=2E667a883 100644
--- a/src/xencrsh/assert=2Eh
+++ b/src/xencrsh/assert=2Eh
@@ -128,7 +128,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             LogError("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Nam=
e, Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
diff --git a/src/xenvbd/assert=2Eh b/src/xenvbd/assert=2Eh
index 94e81fb=2E=2E2ca2c98 100644
--- a/src/xenvbd/assert=2Eh
+++ b/src/xenvbd/assert=2Eh
@@ -214,7 +214,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             Error("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Name, =
Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f6.839c65ffbd511fdd.19f297ebd2c.a8e4b9c035b5c8f4=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:40:10 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:40:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353696.1609422 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjkA-0008MX-Gw; Fri, 03 Jul 2026 19:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353696.1609422; Fri, 03 Jul 2026 19:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjkA-0008MP-EG; Fri, 03 Jul 2026 19:40:10 +0000
Received: by outflank-mailman (input) for mailman id 1353696;
 Fri, 03 Jul 2026 19:40:08 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ed86f00080a8@swg.vates.tech>)
 id 1wfjk8-0008M7-Sc
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:40:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjk8-000XcB-9W
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:40:08 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ed86f00080a8@swg.vates.tech>)
 id 6a481018-2eae-0a2a0a5409dd-0a2a4507b31c-2
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:40:08 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ed86f00080a8@swg.vates.tech>)
 id 6a481018-9c8e-0a2a45070019-b9ff1c238de7-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:40:08 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f297ed86f00080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:40:06 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 0E80E80510;
 Fri,  3 Jul 2026 21:40:06 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=VfCvo5QwqMYNhjB3QZMBqNk2kvF79I651V2GBKrqyDs=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=lBUgvadzwPFdZK+ku7NSYwR2J5uzRnZQiW8clrbK0fe/o4VmArRypd7YgU2vh7matnUOf43Qt
 h9CiZPyS70gFL9ntmCnecx28xMBNAW5Ig43DmWLqN5zEcPVhMgNfy3fVRhdBOj8Jxir88QasuVS
 gpjFZyqu3AveSKatUDfjYVTOSxj7hHLx+UjkbfSUyMlSDRkW1SLl9Rgs17CzMzHYDA3QY4ChQVD
 JhhgV2vRPJUxencoeMa8Dbuwxcwfyw7MSP3+wteoyTsSSvMSJ2aBlK3CrEc9g/ToML2oJ0s/sUg
 k6XLaIuwJ5coRC3eLShFInHcpZ7g1WufKxLsftxRdA7Q==
X-Zone-Loop: 4301892414167d91a728d515d615ead2bc43dd0c28ab
x-campaign-type: default
x-transaction-id: 52cd5893-0294-49fc-9756-3c41a13c4623
x-swg-uid: 01-61627ba9-deac-48cc-a51f-0b40674ec829
X-Mailer: Sweego
Message-ID:
 <1783107606.8631fc262581453bbf619ec5b2062170.19f297ed86f00080a8@vates.tech>
x-swg-bid: 1783107606.8631fc262581453bbf619ec5b2062170.19f297ed86f00080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH] Do not fail assertions of IsZeroMemory
Date: Fri,  3 Jul 2026 21:40:04 +0200
In-Reply-To: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
References: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f7.ef6a2c67e5087704.19f297ed68c.f7bfdbf5c51ef574=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107606156
X-purgate-ID: tlsNG-ef75cf/1783107608-FFF3525E-AC276FEC/0/0
X-purgate-type: clean
X-purgate-size: 1188

---=Part.f7.ef6a2c67e5087704.19f297ed68c.f7bfdbf5c51ef574=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The Windows drivers currently use IsZeroMemory to test many structs that
contain padding=2E This may cause spurious assertion failures=2E

Make IsZeroMemory always return true, but keep the error reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/assert=2Eh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenvif/assert=2Eh b/src/xenvif/assert=2Eh
index c41dfed=2E=2E42f6291 100644
--- a/src/xenvif/assert=2Eh
+++ b/src/xenvif/assert=2Eh
@@ -167,7 +167,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             Error("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Name, =
Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f7.ef6a2c67e5087704.19f297ed68c.f7bfdbf5c51ef574=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:40:20 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353698.1609425 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjkK-0008Ps-IL; Fri, 03 Jul 2026 19:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353698.1609425; Fri, 03 Jul 2026 19:40:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjkK-0008Pl-Fo; Fri, 03 Jul 2026 19:40:20 +0000
Received: by outflank-mailman (input) for mailman id 1353698;
 Fri, 03 Jul 2026 19:40:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ef1d500080a8@swg.vates.tech>)
 id 1wfjkJ-0008PS-3Q
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:40:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjkI-00B3Nc-Gb
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:40:18 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ef1d500080a8@swg.vates.tech>)
 id 6a481019-bab6-0a2a0a5309dd-0a2a4505bf72-4
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:40:18 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f297ef1d500080a8@swg.vates.tech>)
 id 6a481022-3cb2-0a2a45050019-b9ff1c228b35-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:40:18 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f297ef1d500080a8.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:40:13 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 95F7580510;
 Fri,  3 Jul 2026 21:40:12 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=DGM5QdjWp94Qp1L7kwL3OdT4EnxuycTrz1U+r6AK0VQ=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=Ba+o9auTZTQCmNEf/YQ5InFN1FTIrtyha6s1ulmZSR5uRf5xsu7ARzFdnaE0/WIu8FnWK9xb4
 tXNPls7hLQ8yNZ62+SOs1Z/ejCmQYEyIr5x7SK06MSW8M4H4fsejrPBKzL5AjIG663OJ8DTR9IO
 BI8gV2+5FzHUSrwCGFAXxuqlpQKNmp5S7IgFWjNSVgPlYk7kx2f1fw1LSjslJfEZgAQ7EpueJEi
 zNteobWThsI4SV+73Yao/2owku0UWDwpoMSL6vvPfTb0OwULV/cbYIimCgxEERtuRWHMoJaIGK7
 MoWiWB0zucNgy7ZrygcFiiEEbhKKkc6Mgb54ghTU8snQ==
X-Zone-Loop: b99b9fca4dd93affc080bef6ea2800ae904fc87b0a7d
x-campaign-type: default
x-transaction-id: 7b0e4c47-8bce-4236-92ff-7e6c91704129
x-swg-uid: 01-25c1e72a-e4f4-4a79-87c6-44c13772960a
X-Mailer: Sweego
Message-ID:
 <1783107613.8631fc262581453bbf619ec5b2062170.19f297ef1d500080a8@vates.tech>
x-swg-bid: 1783107613.8631fc262581453bbf619ec5b2062170.19f297ef1d500080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH] Do not fail assertions of IsZeroMemory
Date: Fri,  3 Jul 2026 21:40:11 +0200
In-Reply-To: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
References: <1783107540.8631fc262581453bbf619ec5b2062170.19f297dd7b200080a8@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f8.948372811f7d6323.19f297ef026.f33c9642d7fa58fd=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783107612710
X-purgate-ID: tlsNG-c201ff/1783107618-1771B2B8-CC1282A4/0/0
X-purgate-type: clean
X-purgate-size: 1193

---=Part.f8.948372811f7d6323.19f297ef026.f33c9642d7fa58fd=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The Windows drivers currently use IsZeroMemory to test many structs that
contain padding=2E This may cause spurious assertion failures=2E

Make IsZeroMemory always return true, but keep the error reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvkbd/assert=2Eh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenvkbd/assert=2Eh b/src/xenvkbd/assert=2Eh
index fe76f98=2E=2E5bc5c2b 100644
--- a/src/xenvkbd/assert=2Eh
+++ b/src/xenvkbd/assert=2Eh
@@ -166,7 +166,7 @@ _IsZeroMemory(
     while (Offset < Length) {
         if (*((PUCHAR)Buffer + Offset) !=3D 0) {
             Error("%s: non-zero byte in %s (0x%p+0x%x)\n", Caller, Name, =
Buffer, Offset);
-            return FALSE;
+            return TRUE;
         }
         Offset++;
     }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f8.948372811f7d6323.19f297ef026.f33c9642d7fa58fd=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:48:47 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353705.1609430 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjsU-0000JO-5q; Fri, 03 Jul 2026 19:48:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353705.1609430; Fri, 03 Jul 2026 19:48:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjsU-0000JH-34; Fri, 03 Jul 2026 19:48:46 +0000
Received: by outflank-mailman (input) for mailman id 1353705;
 Fri, 03 Jul 2026 19:48:45 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2986b86900080a8@swg.vates.tech>)
 id 1wfjsT-0000JB-07
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjsS-00CSj6-A6
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:48:44 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2986b86900080a8@swg.vates.tech>)
 id 6a48121b-e002-0a2a0a5209dd-0a2a4508c1ba-2
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:48:44 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2986b86900080a8@swg.vates.tech>)
 id 6a48121c-edec-0a2a45080019-b9ff1c238477-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:48:44 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f2986b86900080a8.002 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:48:42 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id EAB1B806D3;
 Fri,  3 Jul 2026 21:48:41 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=8dHOVxSXSJYD3UDREBZuv9CCzhKnBNnT5nzatA1gsck=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=NcUOy2qJ2Zdj0Y6AnOfd73Hy27eF2ZmQXe0E5X8zgX7t28XlJV+7ZVMGh5zoW5u7cK+Sk4Dju
 GnlImHqzNkhliTS8VBW99wF/tEw//yxBeIbdKAVJXM95o1O7UjG0LnW6rUtigH2TEv+quCXa4t3
 asMY3mNZc9rRt24Ro9Oz7tdgGlD+UJI4cIsDBZqN2CY46+clS1++DPyeb9stdR7B5iPv1hDJeZZ
 IwTCN444SjDqegA8URhBEasQoGeXKCzNIfQ6Xnqgc8QqZrM3FjQPPb2mNRjw0xvExjaCYXB9fXa
 9BomITSVvfXkw0kLfhEl9TS9Y1lGi0L9qAM8/DRx6M3w==
X-Zone-Loop: df3bc1a594228ba2ff138ba84a3af01b29382a14bbc7
x-campaign-type: default
x-transaction-id: 392f8ad1-dd93-416f-8dfa-7edab660c8ef
x-swg-uid: 01-230aa01f-754c-4d75-8931-efdb21a33a9a
X-Mailer: Sweego
Message-ID:
 <1783108122.8631fc262581453bbf619ec5b2062170.19f2986b86900080a8@vates.tech>
x-swg-bid: 1783108122.8631fc262581453bbf619ec5b2062170.19f2986b86900080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 3 Jul 2026 21:48:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] Wrap calls to Parse Pullup callback
To: Owen Smith <owen.smith@citrix.com>, win-pv-devel@lists.xenproject.org
References: <20260703122217.57-1-owen.smith@citrix.com>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <20260703122217.57-1-owen.smith@citrix.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.f9.c55e1e8ba8e07127.19f2986b59d.17327998f0229097=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783108122013
X-purgate-ID: tlsNG-c1860d/1783108124-480553FC-326E554F/0/0
X-purgate-type: clean
X-purgate-size: 10944

---=Part.f9.c55e1e8ba8e07127.19f2986b59d.17327998f0229097=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 03/07/2026 14:22, Owen Smith wrote:
> This will allow additional checks to be added to the buffers
>=20
> Signed-off-by: Owen Smith <owen=2Esmith@citrix=2Ecom>

Reviewed-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>

> ---
>   src/xenvif/parse=2Ec | 163 +++++++++++++++++++++++++++++--------------=
--
>   1 file changed, 106 insertions(+), 57 deletions(-)
>=20
> diff --git a/src/xenvif/parse=2Ec b/src/xenvif/parse=2Ec
> index 62bc223=2E=2E2e5000d 100644
> --- a/src/xenvif/parse=2Ec
> +++ b/src/xenvif/parse=2Ec
> @@ -44,6 +44,22 @@
>   #include "assert=2Eh"
>   #include "util=2Eh"
>  =20
> +static FORCEINLINE BOOLEAN
> +__ParsePullup(
> +    IN      XENVIF_PARSE_PULLUP         Pullup,
> +    IN      PVOID                       Argument,
> +    IN      PUCHAR                      StartVa,
> +    IN      ULONG                       Offset,
> +    IN      PXENVIF_PACKET_PAYLOAD      Payload,
> +    IN      ULONG                       Length
> +    )
> +{
> +    return Pullup(Argument,
> +                  StartVa + Offset,
> +                  Payload,
> +                  Length);
> +}
> +
>   static FORCEINLINE NTSTATUS
>   __ParseTcpHeader(
>       IN      PUCHAR                      StartVa,
> @@ -58,10 +74,12 @@ __ParseTcpHeader(
>  =20
>       Info->TcpHeader=2EOffset =3D Offset;
>  =20
> -    if (!Pullup(Argument,
> -                StartVa + Offset,
> -                Payload,
> -                sizeof (TCP_HEADER)))
> +    if (!__ParsePullup(Pullup,
> +                       Argument,
> +                       StartVa,
> +                       Offset,
> +                       Payload,
> +                       sizeof (TCP_HEADER)))
>           goto fail1;
>  =20
>       Header =3D (PTCP_HEADER)(StartVa + Offset);
> @@ -80,10 +98,12 @@ __ParseTcpHeader(
>  =20
>           Extra =3D TCP_HEADER_LENGTH(Header) - Info->TcpHeader=2ELength=
;
>  =20
> -        if (!Pullup(Argument,
> -                    StartVa + Offset,
> -                    Payload,
> -                    Extra))
> +        if (!__ParsePullup(Pullup,
> +                           Argument,
> +                           StartVa,
> +                           Offset,
> +                           Payload,
> +                           Extra))
>               goto fail3;
>  =20
>           Offset +=3D Extra;
> @@ -119,10 +139,12 @@ __ParseUdpHeader(
>   {
>       Info->UdpHeader=2EOffset =3D Offset;
>  =20
> -    if (!Pullup(Argument,
> -                StartVa + Offset,
> -                Payload,
> -                sizeof (UDP_HEADER)))
> +    if (!__ParsePullup(Pullup,
> +                       Argument,
> +                       StartVa,
> +                       Offset,
> +                       Payload,
> +                       sizeof (UDP_HEADER)))
>           goto fail1;
>  =20
>       Offset +=3D sizeof (UDP_HEADER);
> @@ -156,7 +178,12 @@ __ParseIpVersion4Header(
>  =20
>       Info->IpHeader=2EOffset =3D Offset;
>  =20
> -    if (!Pullup(Argument, StartVa + Offset, Payload, sizeof (IPV4_HEADE=
R)))
> +    if (!__ParsePullup(Pullup,
> +                       Argument,
> +                       StartVa,
> +                       Offset,
> +                       Payload,
> +                       sizeof (IPV4_HEADER)))
>           goto fail1;
>  =20
>       Header =3D (PIPV4_HEADER)(StartVa + Offset);
> @@ -181,10 +208,12 @@ __ParseIpVersion4Header(
>  =20
>           Extra =3D IPV4_HEADER_LENGTH(Header) - Info->IpHeader=2ELength=
;
>  =20
> -        if (!Pullup(Argument,
> -                    StartVa + Offset,
> -                    Payload,
> -                    Extra))
> +        if (!__ParsePullup(Pullup,
> +                           Argument,
> +                           StartVa,
> +                           Offset,
> +                           Payload,
> +                           Extra))
>               goto fail5;
>  =20
>           Offset +=3D Extra;
> @@ -261,10 +290,12 @@ __ParseIpVersion6Header(
>  =20
>       Info->IpHeader=2EOffset =3D Offset;
>  =20
> -    if (!Pullup(Argument,
> -                StartVa + Offset,
> -                Payload,
> -                sizeof (IPV6_HEADER)))
> +    if (!__ParsePullup(Pullup,
> +                       Argument,
> +                       StartVa,
> +                       Offset,
> +                       Payload,
> +                       sizeof (IPV6_HEADER)))
>           goto fail1;
>  =20
>       Header =3D (PIPV6_HEADER)(StartVa + Offset);
> @@ -291,10 +322,12 @@ __ParseIpVersion6Header(
>               PIPV6_FRAGMENT_HEADER   Fragment;
>               USHORT                  FragmentOffsetAndFlags;
>  =20
> -            if (!Pullup(Argument,
> -                        StartVa + Offset,
> -                        Payload,
> -                        sizeof (IPV6_FRAGMENT_HEADER)))
> +            if (!__ParsePullup(Pullup,
> +                               Argument,
> +                               StartVa,
> +                               Offset,
> +                               Payload,
> +                               sizeof (IPV6_FRAGMENT_HEADER)))
>                   goto fail4;
>  =20
>               Fragment =3D (PIPV6_FRAGMENT_HEADER)(StartVa + Offset);
> @@ -310,10 +343,12 @@ __ParseIpVersion6Header(
>               PIP_AUTHENTICATION_HEADER   Authentication;
>               ULONG                       Extra;
>  =20
> -            if (!Pullup(Argument,
> -                        StartVa + Offset,
> -                        Payload,
> -                        sizeof (IP_AUTHENTICATION_HEADER)))
> +            if (!__ParsePullup(Pullup,
> +                               Argument,
> +                               StartVa,
> +                               Offset,
> +                               Payload,
> +                               sizeof (IP_AUTHENTICATION_HEADER)))
>                   goto fail4;
>  =20
>               Authentication =3D (PIP_AUTHENTICATION_HEADER)(StartVa + O=
ffset);
> @@ -322,10 +357,12 @@ __ParseIpVersion6Header(
>               Extra =3D ((ULONG)(Authentication->Length + 2) << 2) -
>                       ((ULONG)sizeof (IP_AUTHENTICATION_HEADER));
>  =20
> -            if (!Pullup(Argument,
> -                        StartVa + Offset,
> -                        Payload,
> -                        Extra))
> +            if (!__ParsePullup(Pullup,
> +                               Argument,
> +                               StartVa,
> +                               Offset,
> +                               Payload,
> +                               Extra))
>                   goto fail5;
>  =20
>               Offset +=3D Extra;
> @@ -339,10 +376,12 @@ __ParseIpVersion6Header(
>               PIPV6_OPTION_HEADER Option;
>               ULONG               Extra;
>  =20
> -            if (!Pullup(Argument,
> -                        StartVa + Offset,
> -                        Payload,
> -                        sizeof (IPV6_OPTION_HEADER)))
> +            if (!__ParsePullup(Pullup,
> +                               Argument,
> +                               StartVa,
> +                               Offset,
> +                               Payload,
> +                               sizeof (IPV6_OPTION_HEADER)))
>                   goto fail4;
>  =20
>               Option =3D (PIPV6_OPTION_HEADER)(StartVa + Offset);
> @@ -351,10 +390,12 @@ __ParseIpVersion6Header(
>               Extra =3D ((ULONG)(Option->Length + 1) << 3) -
>                       ((ULONG)sizeof (IPV6_OPTION_HEADER));
>  =20
> -            if (!Pullup(Argument,
> -                        StartVa + Offset,
> -                        Payload,
> -                        Extra))
> +            if (!__ParsePullup(Pullup,
> +                               Argument,
> +                               StartVa,
> +                               Offset,
> +                               Payload,
> +                               Extra))
>                   goto fail5;
>  =20
>               Offset +=3D Extra;
> @@ -439,10 +480,12 @@ __ParseLLCSnapHeader(
>  =20
>       Info->LLCSnapHeader=2EOffset =3D Offset;
>  =20
> -    if (!Pullup(Argument,
> -                StartVa + Offset,
> -                Payload,
> -                sizeof (LLC_U_HEADER)))
> +    if (!__ParsePullup(Pullup,
> +                       Argument,
> +                       StartVa,
> +                       Offset,
> +                       Payload,
> +                       sizeof (LLC_U_HEADER)))
>           goto fail1;
>  =20
>       Header =3D (PLLC_SNAP_HEADER)(StartVa + Offset);
> @@ -455,10 +498,12 @@ __ParseLLCSnapHeader(
>  =20
>           Extra =3D sizeof (LLC_SNAP_HEADER) - sizeof (LLC_U_HEADER);
>  =20
> -        if (!Pullup(Argument,
> -                    StartVa + Offset,
> -                    Payload,
> -                    Extra))
> +        if (!__ParsePullup(Pullup,
> +                           Argument,
> +                           StartVa,
> +                           Offset,
> +                           Payload,
> +                           Extra))
>               goto fail2;
>  =20
>           Offset +=3D Extra;
> @@ -494,10 +539,12 @@ __ParseEthernetHeader(
>  =20
>       Info->EthernetHeader=2EOffset =3D Offset;
>  =20
> -    if (!Pullup(Argument,
> -                StartVa + Offset,
> -                Payload,
> -                sizeof (ETHERNET_UNTAGGED_HEADER)))
> +    if (!__ParsePullup(Pullup,
> +                       Argument,
> +                       StartVa,
> +                       Offset,
> +                       Payload,
> +                       sizeof (ETHERNET_UNTAGGED_HEADER)))
>           goto fail1;
>  =20
>       Header =3D (PETHERNET_HEADER)(StartVa + Offset);
> @@ -512,10 +559,12 @@ __ParseEthernetHeader(
>           Extra =3D sizeof (ETHERNET_TAGGED_HEADER) -
>                   sizeof (ETHERNET_UNTAGGED_HEADER);
>  =20
> -        if (!Pullup(Argument,
> -                    StartVa + Offset,
> -                    Payload,
> -                    Extra))
> +        if (!__ParsePullup(Pullup,
> +                           Argument,
> +                           StartVa,
> +                           Offset,
> +                           Payload,
> +                           Extra))
>               goto fail2;
>  =20
>           Offset +=3D Extra;



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.f9.c55e1e8ba8e07127.19f2986b59d.17327998f0229097=---


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 03 19:51:12 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Jul 2026 19:51:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1353707.1609434 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjuq-0001Sz-CE; Fri, 03 Jul 2026 19:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1353707.1609434; Fri, 03 Jul 2026 19:51:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wfjuq-0001Ss-9U; Fri, 03 Jul 2026 19:51:12 +0000
Received: by outflank-mailman (input) for mailman id 1353707;
 Fri, 03 Jul 2026 19:51:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2988e23a00080a8@swg.vates.tech>)
 id 1wfjup-0001Sm-C2
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 19:51:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wfjuo-001LFI-4v
 for win-pv-devel@lists.xenproject.org; Fri, 03 Jul 2026 21:51:10 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2988e23a00080a8@swg.vates.tech>)
 id 6a481230-2eae-0a2a0a5409dd-0a2a4505b39a-38
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:51:09 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f2988e23a00080a8@swg.vates.tech>)
 id 6a4812ad-3cb2-0a2a45050019-b9ff1c2284a9-3
 for <win-pv-devel@lists.xenproject.org>; Fri, 03 Jul 2026 21:51:09 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f2988e23a00080a8.002 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 03 Jul 2026 19:51:04 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id EC5FE80510;
 Fri,  3 Jul 2026 21:51:03 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=8nzmd9f0ovGtNKX3rahy6dD/p47hBQIXrk5BJpvsaiA=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=IBuFYJabs11AxOti4jn5lvdZ/fZx0GY3uTAUGYU52lgwSu6QSMHQ7lgJ42Qe33NiAEkWcOk3P
 hX75ijoVZMyQsFZV5608nZn/a0hMZbiLwEMPBBr7xXLxTzOcWqPw1ZEPqVcrafFNkJxbdOBoq4E
 WasN++vxwnpPEGRWj5M5bAyGnnYFJe0yw+PfbMB4SA1SKzVex538W2ckoZspJzAMLiI/JAuNHJP
 lI95+IMHVQzgfhN9nNGO8DJ+k95Q1w4V/jW7a90Re5pp3LhYNqN2zL+8a/gHp67OS8qSmjz4us6
 F4ZIIXpENznWQu0mmm3k1N+qPf5G4vUUTH7FKuX4yEIg==
X-Zone-Loop: b2ff518244bc2169db32eba53b6d74d80005048b17bd
x-campaign-type: default
x-transaction-id: 073a39ce-f17a-41e0-b86a-b85f4be22ff0
x-swg-uid: 01-37d8f0d5-2bd7-49f6-b4ac-5743a501236d
X-Mailer: Sweego
Message-ID:
 <1783108264.8631fc262581453bbf619ec5b2062170.19f2988e23a00080a8@vates.tech>
x-swg-bid: 1783108264.8631fc262581453bbf619ec5b2062170.19f2988e23a00080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 3 Jul 2026 21:51:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] Validate buffer length in ParsePacket
To: Owen Smith <owen.smith@citrix.com>, win-pv-devel@lists.xenproject.org
References: <20260703122217.57-1-owen.smith@citrix.com>
 <20260703122217.57-2-owen.smith@citrix.com>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <20260703122217.57-2-owen.smith@citrix.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.fa.9187955ca2b9de10.19f2988e051.d3658dc334c21cdd=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783108264018
X-purgate-ID: tlsNG-c201ff/1783108269-173152B8-6718E2B6/0/0
X-purgate-type: clean
X-purgate-size: 14243

---=Part.fa.9187955ca2b9de10.19f2988e051.d3658dc334c21cdd=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 03/07/2026 14:22, Owen Smith wrote:
> By passing the destination buffer length to ParsePacket, its possible to
> detect a potential buffer overrun=2E This is likely only an issue when
> TransmitterQueuePacket attempts to parse an IPv6 packet with sufficient
> option headers to exceed XENVIF_TRANSMITTER_MAXIMUM_HEADER_LENGTH (512 b=
ytes)
>=20
> Signed-off-by: Owen Smith <owen=2Esmith@citrix=2Ecom>

Reviewed-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>

> ---
>   src/xenvif/parse=2Ec       | 36 ++++++++++++++++++++++++++++++++++++
>   src/xenvif/parse=2Eh       |  1 +
>   src/xenvif/receiver=2Ec    |  7 ++++++-
>   src/xenvif/transmitter=2Ec |  7 ++++++-
>   4 files changed, 49 insertions(+), 2 deletions(-)
>=20
> diff --git a/src/xenvif/parse=2Ec b/src/xenvif/parse=2Ec
> index 2e5000d=2E=2E4f4f773 100644
> --- a/src/xenvif/parse=2Ec
> +++ b/src/xenvif/parse=2Ec
> @@ -49,11 +49,17 @@ __ParsePullup(
>       IN      XENVIF_PARSE_PULLUP         Pullup,
>       IN      PVOID                       Argument,
>       IN      PUCHAR                      StartVa,
> +    IN      ULONG                       StartLen,
>       IN      ULONG                       Offset,
>       IN      PXENVIF_PACKET_PAYLOAD      Payload,
>       IN      ULONG                       Length
>       )
>   {
> +    ASSERT3U(StartLen, >, Offset);
> +
> +    if (StartLen - Offset < Length)
> +        return FALSE;
> +
>       return Pullup(Argument,
>                     StartVa + Offset,
>                     Payload,
> @@ -63,6 +69,7 @@ __ParsePullup(
>   static FORCEINLINE NTSTATUS
>   __ParseTcpHeader(
>       IN      PUCHAR                      StartVa,
> +    IN      ULONG                       StartLen,
>       IN      ULONG                       Offset,
>       IN      XENVIF_PARSE_PULLUP         Pullup,
>       IN      PVOID                       Argument,
> @@ -77,6 +84,7 @@ __ParseTcpHeader(
>       if (!__ParsePullup(Pullup,
>                          Argument,
>                          StartVa,
> +                       StartLen,
>                          Offset,
>                          Payload,
>                          sizeof (TCP_HEADER)))
> @@ -101,6 +109,7 @@ __ParseTcpHeader(
>           if (!__ParsePullup(Pullup,
>                              Argument,
>                              StartVa,
> +                           StartLen,
>                              Offset,
>                              Payload,
>                              Extra))
> @@ -130,6 +139,7 @@ fail1:
>   static FORCEINLINE NTSTATUS
>   __ParseUdpHeader(
>       IN      PUCHAR                      StartVa,
> +    IN      ULONG                       StartLen,
>       IN      ULONG                       Offset,
>       IN      XENVIF_PARSE_PULLUP         Pullup,
>       IN      PVOID                       Argument,
> @@ -142,6 +152,7 @@ __ParseUdpHeader(
>       if (!__ParsePullup(Pullup,
>                          Argument,
>                          StartVa,
> +                       StartLen,
>                          Offset,
>                          Payload,
>                          sizeof (UDP_HEADER)))
> @@ -164,6 +175,7 @@ fail1:
>   static FORCEINLINE NTSTATUS
>   __ParseIpVersion4Header(
>       IN      PUCHAR                      StartVa,
> +    IN      ULONG                       StartLen,
>       IN      ULONG                       Offset,
>       IN      XENVIF_PARSE_PULLUP         Pullup,
>       IN      PVOID                       Argument,
> @@ -181,6 +193,7 @@ __ParseIpVersion4Header(
>       if (!__ParsePullup(Pullup,
>                          Argument,
>                          StartVa,
> +                       StartLen,
>                          Offset,
>                          Payload,
>                          sizeof (IPV4_HEADER)))
> @@ -211,6 +224,7 @@ __ParseIpVersion4Header(
>           if (!__ParsePullup(Pullup,
>                              Argument,
>                              StartVa,
> +                           StartLen,
>                              Offset,
>                              Payload,
>                              Extra))
> @@ -233,6 +247,7 @@ __ParseIpVersion4Header(
>       switch (Header->Protocol) {
>       case IPPROTO_TCP:
>           status =3D __ParseTcpHeader(StartVa,
> +                                  StartLen,
>                                     Offset,
>                                     Pullup,
>                                     Argument,
> @@ -242,6 +257,7 @@ __ParseIpVersion4Header(
>  =20
>       case IPPROTO_UDP:
>           status =3D __ParseUdpHeader(StartVa,
> +                                  StartLen,
>                                     Offset,
>                                     Pullup,
>                                     Argument,
> @@ -274,6 +290,7 @@ fail1:
>   static FORCEINLINE NTSTATUS
>   __ParseIpVersion6Header(
>       IN      PUCHAR                      StartVa,
> +    IN      ULONG                       StartLen,
>       IN      ULONG                       Offset,
>       IN      XENVIF_PARSE_PULLUP         Pullup,
>       IN      PVOID                       Argument,
> @@ -293,6 +310,7 @@ __ParseIpVersion6Header(
>       if (!__ParsePullup(Pullup,
>                          Argument,
>                          StartVa,
> +                       StartLen,
>                          Offset,
>                          Payload,
>                          sizeof (IPV6_HEADER)))
> @@ -325,6 +343,7 @@ __ParseIpVersion6Header(
>               if (!__ParsePullup(Pullup,
>                                  Argument,
>                                  StartVa,
> +                               StartLen,
>                                  Offset,
>                                  Payload,
>                                  sizeof (IPV6_FRAGMENT_HEADER)))
> @@ -346,6 +365,7 @@ __ParseIpVersion6Header(
>               if (!__ParsePullup(Pullup,
>                                  Argument,
>                                  StartVa,
> +                               StartLen,
>                                  Offset,
>                                  Payload,
>                                  sizeof (IP_AUTHENTICATION_HEADER)))
> @@ -360,6 +380,7 @@ __ParseIpVersion6Header(
>               if (!__ParsePullup(Pullup,
>                                  Argument,
>                                  StartVa,
> +                               StartLen,
>                                  Offset,
>                                  Payload,
>                                  Extra))
> @@ -379,6 +400,7 @@ __ParseIpVersion6Header(
>               if (!__ParsePullup(Pullup,
>                                  Argument,
>                                  StartVa,
> +                               StartLen,
>                                  Offset,
>                                  Payload,
>                                  sizeof (IPV6_OPTION_HEADER)))
> @@ -393,6 +415,7 @@ __ParseIpVersion6Header(
>               if (!__ParsePullup(Pullup,
>                                  Argument,
>                                  StartVa,
> +                               StartLen,
>                                  Offset,
>                                  Payload,
>                                  Extra))
> @@ -427,6 +450,7 @@ __ParseIpVersion6Header(
>       switch (NextHeader) {
>       case IPPROTO_TCP:
>           status =3D __ParseTcpHeader(StartVa,
> +                                  StartLen,
>                                     Offset,
>                                     Pullup,
>                                     Argument,
> @@ -436,6 +460,7 @@ __ParseIpVersion6Header(
>  =20
>       case IPPROTO_UDP:
>           status =3D __ParseUdpHeader(StartVa,
> +                                  StartLen,
>                                     Offset,
>                                     Pullup,
>                                     Argument,
> @@ -469,6 +494,7 @@ fail1:
>   static FORCEINLINE NTSTATUS
>   __ParseLLCSnapHeader(
>       IN      PUCHAR                      StartVa,
> +    IN      ULONG                       StartLen,
>       IN      ULONG                       Offset,
>       IN      XENVIF_PARSE_PULLUP         Pullup,
>       IN      PVOID                       Argument,
> @@ -483,6 +509,7 @@ __ParseLLCSnapHeader(
>       if (!__ParsePullup(Pullup,
>                          Argument,
>                          StartVa,
> +                       StartLen,
>                          Offset,
>                          Payload,
>                          sizeof (LLC_U_HEADER)))
> @@ -501,6 +528,7 @@ __ParseLLCSnapHeader(
>           if (!__ParsePullup(Pullup,
>                              Argument,
>                              StartVa,
> +                           StartLen,
>                              Offset,
>                              Payload,
>                              Extra))
> @@ -525,6 +553,7 @@ fail1:
>   static FORCEINLINE NTSTATUS
>   __ParseEthernetHeader(
>       IN      PUCHAR                      StartVa,
> +    IN      ULONG                       StartLen,
>       IN      ULONG                       Offset,
>       IN      XENVIF_PARSE_PULLUP         Pullup,
>       IN      PVOID                       Argument,
> @@ -542,6 +571,7 @@ __ParseEthernetHeader(
>       if (!__ParsePullup(Pullup,
>                          Argument,
>                          StartVa,
> +                       StartLen,
>                          Offset,
>                          Payload,
>                          sizeof (ETHERNET_UNTAGGED_HEADER)))
> @@ -562,6 +592,7 @@ __ParseEthernetHeader(
>           if (!__ParsePullup(Pullup,
>                              Argument,
>                              StartVa,
> +                           StartLen,
>                              Offset,
>                              Payload,
>                              Extra))
> @@ -580,6 +611,7 @@ __ParseEthernetHeader(
>  =20
>       if (IsLLC) {
>           status =3D __ParseLLCSnapHeader(StartVa,
> +                                      StartLen,
>                                         Offset,
>                                         Pullup,
>                                         Argument,
> @@ -589,6 +621,7 @@ __ParseEthernetHeader(
>           switch (TypeOrLength) {
>           case ETHERTYPE_IPV4:
>               status =3D __ParseIpVersion4Header(StartVa,
> +                                             StartLen,
>                                                Offset,
>                                                Pullup,
>                                                Argument,
> @@ -598,6 +631,7 @@ __ParseEthernetHeader(
>  =20
>           case ETHERTYPE_IPV6:
>               status =3D __ParseIpVersion6Header(StartVa,
> +                                             StartLen,
>                                                Offset,
>                                                Pullup,
>                                                Argument,
> @@ -623,6 +657,7 @@ fail1:
>   NTSTATUS
>   ParsePacket(
>       IN      PUCHAR                      StartVa,
> +    IN      ULONG                       StartLen,
>       IN      XENVIF_PARSE_PULLUP         Pullup,
>       IN      PVOID                       Argument,
>       IN OUT  PXENVIF_PACKET_PAYLOAD      Payload,
> @@ -632,6 +667,7 @@ ParsePacket(
>       ASSERT(IsZeroMemory(Info, sizeof (XENVIF_PACKET_INFO)));
>  =20
>       return __ParseEthernetHeader(StartVa,
> +                                 StartLen,
>                                    0,
>                                    Pullup,
>                                    Argument,
> diff --git a/src/xenvif/parse=2Eh b/src/xenvif/parse=2Eh
> index d00d962=2E=2E678991a 100644
> --- a/src/xenvif/parse=2Eh
> +++ b/src/xenvif/parse=2Eh
> @@ -52,6 +52,7 @@ typedef BOOLEAN
>   extern NTSTATUS
>   ParsePacket(
>       IN      PUCHAR                  StartVa,
> +    IN      ULONG                   StartLen,
>       IN      XENVIF_PARSE_PULLUP     Pullup,
>       IN      PVOID                   Argument,
>       IN OUT  PXENVIF_PACKET_PAYLOAD  Payload,
> diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
> index 0ed46e6=2E=2E14e8d0b 100644
> --- a/src/xenvif/receiver=2Ec
> +++ b/src/xenvif/receiver=2Ec
> @@ -1268,7 +1268,12 @@ ReceiverRingProcessPacket(
>  =20
>       Info =3D &Packet->Info;
>  =20
> -    status =3D ParsePacket(BaseVa, ReceiverRingPullup, Ring, &Payload, =
Info);
> +    status =3D ParsePacket(BaseVa,
> +                         PAGE_SIZE - Packet->Offset,
> +                         ReceiverRingPullup,
> +                         Ring,
> +                         &Payload,
> +                         Info);
>       if (!NT_SUCCESS(status)) {
>           FrontendIncrementStatistic(Frontend,
>                                      XENVIF_RECEIVER_FRONTEND_ERRORS,
> diff --git a/src/xenvif/transmitter=2Ec b/src/xenvif/transmitter=2Ec
> index 41d0f3c=2E=2Eb78a090 100644
> --- a/src/xenvif/transmitter=2Ec
> +++ b/src/xenvif/transmitter=2Ec
> @@ -5209,7 +5209,12 @@ TransmitterQueuePacket(
>  =20
>       Info =3D &Packet->Info;
>  =20
> -    (VOID) ParsePacket(BaseVa, TransmitterPullup, Transmitter, Payload,=
 Info);
> +    (VOID) ParsePacket(BaseVa,
> +                       XENVIF_TRANSMITTER_MAXIMUM_HEADER_LENGTH,
> +                       TransmitterPullup,
> +                       Transmitter,
> +                       Payload,
> +                       Info);
>  =20
>       Algorithm =3D Hash->Algorithm;
>  =20



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.fa.9187955ca2b9de10.19f2988e051.d3658dc334c21cdd=---


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 06 06:54:07 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jul 2026 06:54:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1355058.1609852 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgdDR-0006Ug-8A; Mon, 06 Jul 2026 06:54:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1355058.1609852; Mon, 06 Jul 2026 06:54:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgdDR-0006UX-5F; Mon, 06 Jul 2026 06:54:05 +0000
Received: by outflank-mailman (input) for mailman id 1355058;
 Mon, 06 Jul 2026 06:54:03 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1wgdDP-0006UO-LS
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 06:54:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wgdDM-008afo-7L
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 08:54:00 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a4b50f2-bab6-0a2a0a5309dd-0a2a4505de38-42
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 08:54:00 +0200
Received: from [52.101.61.52]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a4b5106-3cb2-0a2a45050019-34653d3408db-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 08:53:59 +0200
Received: from SA6PR03MB7760.namprd03.prod.outlook.com (2603:10b6:806:43c::5)
 by BN8PR03MB4979.namprd03.prod.outlook.com (2603:10b6:408:db::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.13; Mon, 6 Jul
 2026 06:53:56 +0000
Received: from SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38]) by SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38%3]) with mapi id 15.21.0181.009; Mon, 6 Jul 2026
 06:53:55 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U1aMZTcxQg41ZZwt+xhxgwywRa7w96jTexmi/OR6l6WMVulIvikgf9ZPpXC/hiSBZUG6nVnF78Un4KqSYFF5gn3B0v0GN+hY1w3+Jr8/CGebxfs7qwn94uiGat49mevmqvYrsMU2JSlhagI2jTCxg9tfOh4/TVB0sXacm3ZD43oREGnIqWPn9sqNKfCuouLsfswgCx+ntYx5heX/7tIjc5ojv7YJVKos8QiAxvknwZVRlBHstw2SAJmabByjXvBzWKaG9gf+l8bHDSlMQY+/rmtjs4sXdbkWg0pBjyRJx3vB79+MYU7cHdajg+qIB/BKGmIpzSb03Yx5wm0hHdM25A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jidKypVPvSW8UQp/dqS1msqYSFUEPssR6DWC2s2krMQ=;
 b=JZruQDb3a18qHLHggBSRhBNTsCfveDrXvY/GK5TmgyTnCxG7TuRiygBTKIEaUmdstyKDkh7Gcu+bsDGP6kwnsGiR9Em1gy3mpBQvvOxwwTPk99lVHYrdK4VLHIO9JS3fx06Azr14Bk1T46CcSsLSxntfL7jAytoW8KXn5oLJNju27zVMWZusbuirmWmIIbSXEmXJ408JwT52Ax3c5VOOZeBMCgHAXMMsYocrXAICypthte8IobClNoKYKl2QRBK7eE6ZOmoC/NnPvHGv7D6hDjeg8oikmFhQDblwg7IgZkxWHL+etFtJwdmVyMkyLG3fzOoZb949Shi8PWGo8QXM7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jidKypVPvSW8UQp/dqS1msqYSFUEPssR6DWC2s2krMQ=;
 b=OonFls1vvZgUJ4OjThGyIXfgFTlMr/31uEwKf5HslPcVDWnNus/f2HJDM8QyWagHV3r8cHhTmrbm0vEhUZ8vnB8azLw9Tl+bFIt3dKQGwBACK2VY5z5dXf+H2Y8awaw40wq7ghzpepUGgDbDGjfICXoHtgbZMoxGAE5nxugpmvw=
From: Owen Smith <owen.smith@citrix.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, win-pv-devel
	<win-pv-devel@lists.xenproject.org>
Subject: Re: Xenvif non-zero byte assertion error during teardown
Thread-Topic: Xenvif non-zero byte assertion error during teardown
Thread-Index: AQHdCyKA258DbLHUTUmH48f68vRb2LZgEZv0
Date: Mon, 6 Jul 2026 06:53:54 +0000
Message-ID:
 <SA6PR03MB7760E2212FD35D006DC42BBDFEF12@SA6PR03MB7760.namprd03.prod.outlook.com>
References:
 <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
In-Reply-To:
 <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR03MB7760:EE_|BN8PR03MB4979:EE_
x-ms-office365-filtering-correlation-id: d75e6ff5-e25e-4662-2525-08dedb2b588d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|23010399003|18002099003|22082099003|38070700021|56012099006|5023799004|11063799006;
x-microsoft-antispam-message-info:
 Qez8jjoHRbFPvL6v5KR4Z5TyJ9KYRWA5LPdgVV5cHi015IBAb0L79kYRLm9LaEdJ9qSJJ42FU+hTM3+0v3O3pfcR9bOMtL6Q+aRAUlb9ATc+leUIO36FGyR2C8JWMwhy7D2N3yKVyp60+bYG/9a/+uX6yj44fNLSGvTHeKNcQCxwtlowrLQGJrCxedvjO7oBK6M9RWlR7VKGleDQ4K9k39f2NxqLKQz8osaOnmJdKIEze89DcueF44VWSiqYZqAiURCjWhMu0NljoLsZ2JFvonE7xGhG8ToKK0xxTOxMox+SKXR8yfCdwdLuFO+Kv/W+VMNfpwCnOkRuOANL31xC24RaN/EYZf/O+eNQ6udIWMY1H0XNJcSzK36VLG36fc2/ZxaGvsQMM4ONB7UlZC9S3y8wwotkk3PgevGeViqbS9nddfP/noCIWLIWQ0j6Su0vbaaaEMw7Y6NoTTaDsHtaz4o77sRU50XtFoIoS+m3+iVr7v7raXK5TP7a2JDSext1fEtB8u+818L30vLB4jEN2lwoj+vGS2x/4SS99h7/B4nmN8wbgv5UAgn2RAms0xyldxwDA1suyOmln60wcP1zl53HNOOmcFm9EvAAy6JWJgYFiiTBIe65x4xlc2bPdc+4F2k4/xaDBoEwJ+P5fTkgl4B4WWpOq/fX7bnDD1ppYc0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA6PR03MB7760.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(23010399003)(18002099003)(22082099003)(38070700021)(56012099006)(5023799004)(11063799006);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?jus/c6CicH/rQ7pdZn53vOPmjsvM5Mk9fnRJQCr5iJKmd7n/cA85jY6Q4Y87?=
 =?us-ascii?Q?fRpssP0gEAosk4dSMywY6+VY9HbvWvyJ5f+AAYarNiTqEwJ3BrnDP/mqFVe3?=
 =?us-ascii?Q?vh19K0wyEBiF0sUGrDsxYJrWSYmtiVLDenfn+qOmrQrfr4HSGXpEPfyScdBK?=
 =?us-ascii?Q?8k6V/wpl3SEcX2UC62WYXMCDoeg6sXs1xEuaewwGu1vc+lxPcvPu62a+Qcre?=
 =?us-ascii?Q?8fNtHgjAHeemymY7IZlPyVSw5wK80jpP07d/eR3Jxgje4kGMUFM40WA+FwgT?=
 =?us-ascii?Q?ay/m3+eOfzD6j04sjaXWFEMelkKRR0NQqUXk9B2RWY5XS31hgVFDL5RZooq8?=
 =?us-ascii?Q?cG32wiLq1jdCd4UUjRGLL0VC+CijY/RGwHrRc7RvuZZAoKt000M25lDUw9PK?=
 =?us-ascii?Q?BPz+aWT5rK+nmi0piYVnIzIj6S1aiDKBAZHwSeyy7DT+Hb08vyuRlFlxP4eD?=
 =?us-ascii?Q?bbkjHmzWzqsWOXLBNDGUTD8QOgp+jv8apnzAgFxw89Rdbikitsjoak13tLh+?=
 =?us-ascii?Q?/85g5LfC8P5ej6uA4/BbkgUZ7RK/mrZSKtPl1HA1QF8ADKBGnuA187BHY2d7?=
 =?us-ascii?Q?V/FchcZOtss9KPzyyVs4Mc6DjhljzTvsvU3cDbxnidRwhVMvP+fG1400Ryuc?=
 =?us-ascii?Q?27Y5/OPA3Tc6Pz2VK941o02uWJbSBSlDePVm/SmthWkWNxV0pc2F/4/2Gr4j?=
 =?us-ascii?Q?GlnUCpGCySewrZEoH/CBV+DYtk5oDRhi5dnvqkvxYmCKlxqsT3kekvvcXKbq?=
 =?us-ascii?Q?KdRvVA2C3mLcrL3iOAY3mJUtp9EFZh0RjeLKmnGbPdNTZASrpTIKdICDQmwN?=
 =?us-ascii?Q?z3YQ17Gy33EcHllXUBmGxqubnZyZBkUvAEqPCb22lygjf0ydqaRttX0yroAB?=
 =?us-ascii?Q?SiBW506xH536JtqC0+JiZzoJOsWDv2/gWJP6zjmXdGhsOeYtpDz3TkOQdDJq?=
 =?us-ascii?Q?E5cmFtRmeQjLMQrUUy1TVBu7bEjXc2sn8WvovBS5w0QKL9Knk50KC70GaSWu?=
 =?us-ascii?Q?EPaabEIAYvcCdl+h6KZ9QXwBIO7rE+v4ArqzDrYZpoaRXdxBeosKRIK4+qme?=
 =?us-ascii?Q?vEVsd5U3COItwObfLynLNWR42ChJQ3y00PvDOrKsYtFYcTJ6nIdTf0pKiWQI?=
 =?us-ascii?Q?bJTrLehThJkYU1q0cluAwuVLyluxlsDFckdCLOxCkl1qTaK/5emX2odYzJmI?=
 =?us-ascii?Q?Yz/+yvpjagjU8beMT99dKJK1aTm6DN7DbF9TiysKwBNsAVywinPJpM01SCya?=
 =?us-ascii?Q?ZpPldRG+L5gMhxWdtxL3NqV5Xpg+NfZdUUcNpQ+o/Y/hpHOxJNki/82EcT/d?=
 =?us-ascii?Q?VjqZwsrFjiQHQMX1xlgTis0rDAg1DBz4KRnRZhJL2h0kL0Js6uyPIzsRfdgp?=
 =?us-ascii?Q?K9A1gfueCVF2zpWtUWqkxP2H9/+MshkxBFoiOg7F83ntQYg4pSEEhrC3PEtI?=
 =?us-ascii?Q?jUsawDUtPbOGlE5lFXLjuf626TrkFHVlIk1vGmUn00HM4Jjmh8wqEKHkWlZ+?=
 =?us-ascii?Q?Bd83rII+Hippz4NzljDBP8D1AvmBgtjflJg4RGHr4gQZ5GA8l3OV9uXgqAK/?=
 =?us-ascii?Q?h0NWbUo87IO+n2wKSIX6Hxa8mpIDQqq0Z5GcJNcCAsRTs00SnjTZ8754iL3F?=
 =?us-ascii?Q?0eSzM3/2vGVjaltcvKXfyLSTQSsNWEpgnlvndNoMw6ULh+mRKnEBYutUhg+z?=
 =?us-ascii?Q?RBDGDnS7vQtmSLwH0H6v/lx771QCYtfz25Qv+/koKMPXGo2X?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR03MB7760.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d75e6ff5-e25e-4662-2525-08dedb2b588d
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2026 06:53:54.8591
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EfIOPq6yw/dZlkRVj2QPkqeJYviP2aeiFDykg84YcBDLKy6SDgjb2QBvB0UPUdtcoJHJenJs1I3EaPSH7+UoGw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB4979
X-purgate-ID: tlsNG-c201ff/1783320840-0E9102B8-06DFF1F0/0/0
X-purgate-type: clean
X-purgate-size: 2940

Hi,

Does this imply that something has written to these padding bytes?

_XENVIF_FRONTEND is allocated and zeroed with RtlZeroMemory - so all bytes
should be 0 initially. Nothing should access these padding bytes directly, =
so the
ASSERT should be valid

Owen

________________________________________
From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> on behalf of=
 Tu Dinh <ngoc-tu.dinh@vates.tech>
Sent: 03 July 2026 8:30 PM
To: win-pv-devel
Subject: Xenvif non-zero byte assertion error during teardown

Hello,

It's possible for xenvif to hit an assertion error during teardown due
to non-zero bytes in the _XENVIF_FRONTEND struct:

xenvif|_IsZeroMemory: FrontendTeardown: non-zero byte in Frontend
(0xFFFF84857C8D6AD0+0x64)
xenvif|FrontendTeardown: ASSERTION FAILED: _IsZeroMemory(__FSTREXP
__FUNCTION__  , "Frontend", (Frontend), (sizeof (XENVIF_FRONTEND)))

0x64 belongs to padding area:

0:000> dt xenvif!_XENVIF_FRONTEND
    +0x000 Pdo              : Ptr64 _XENVIF_PDO
    +0x008 Path             : Ptr64 Char
    +0x010 Prefix           : Ptr64 Char
    +0x018 State            : _XENVIF_FRONTEND_STATE
    +0x01c Online           : UChar
    +0x020 Lock             : Uint8B
    +0x028 EjectThread      : Ptr64 _XENVIF_THREAD
    +0x030 EjectEvent       : _KEVENT
    +0x048 BackendPath      : Ptr64 Char
    +0x050 BackendDomain    : Uint2B
    +0x054 MaxQueues        : Uint4B
    +0x058 NumQueues        : Uint4B
    +0x05c Split            : UChar
    +0x060 DisableToeplitz  : Uint4B
    +0x068 Mac              : Ptr64 _XENVIF_MAC
    +0x070 Receiver         : Ptr64 _XENVIF_RECEIVER
    +0x078 Transmitter      : Ptr64 _XENVIF_TRANSMITTER
    +0x080 Controller       : Ptr64 _XENVIF_CONTROLLER
    +0x088 DebugInterface   : _XENBUS_DEBUG_INTERFACE_V1
    +0x0d8 SuspendInterface : _XENBUS_SUSPEND_INTERFACE_V1
    +0x128 StoreInterface   : _XENBUS_STORE_INTERFACE_V2
    +0x1b0 SuspendCallbackEarly : Ptr64 _XENBUS_SUSPEND_CALLBACK
    +0x1b8 SuspendCallbackLate : Ptr64 _XENBUS_SUSPEND_CALLBACK
    +0x1c0 DebugCallback    : Ptr64 _XENBUS_DEBUG_CALLBACK
    +0x1c8 Watch            : Ptr64 _XENBUS_STORE_WATCH
    +0x1d0 Statistics       : Ptr64 _XENVIF_FRONTEND_STATISTICS
    +0x1d8 StatisticsCount  : Uint4B
    +0x1e0 MibThread        : Ptr64 _XENVIF_THREAD
    +0x1e8 Alias            : [257] Char
    +0x2ec InterfaceIndex   : Uint4B
    +0x2f0 AddressTable     : Ptr64 _SOCKADDR_INET
    +0x2f8 AddressCount     : Uint4B
    +0x2fc Hash             : _XENVIF_FRONTEND_HASH

struct _XENVIF_FRONTEND (and likely other structs) are in general full
of similar padding. So the ASSERT(IsZeroMemory(Frontend)) check is too
strict in most cases.

I think current IsZeroMemory asserts should either be removed or
converted to a print-only warning.


--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 06 07:51:41 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jul 2026 07:51:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1355093.1609883 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wge79-0006a2-R3; Mon, 06 Jul 2026 07:51:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1355093.1609883; Mon, 06 Jul 2026 07:51:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wge79-0006Zv-OA; Mon, 06 Jul 2026 07:51:39 +0000
Received: by outflank-mailman (input) for mailman id 1355093;
 Mon, 06 Jul 2026 07:51:38 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 1wge78-0006Zp-2e
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 07:51:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wge77-0012Rh-73
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 09:51:37 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 6a4b5e7c-bab6-0a2a0a5309dd-0a2a4506dbd2-18
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 09:51:37 +0200
Received: from [52.57.120.243]
 (helo=fra-out-012.esa.eu-central-1.outbound.mail-perimeter.amazon.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 6a4b5e88-08de-0a2a45060019-343978f33064-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 09:51:36 +0200
Received: from ip-10-6-3-216.eu-central-1.compute.internal (HELO
 smtpout.naws.eu-central-1.prod.farcaster.email.amazon.dev) ([10.6.3.216])
 by internal-fra-out-012.esa.eu-central-1.outbound.mail-perimeter.amazon.com
 with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2026 07:51:33 +0000
Received: from EX19MTAEUB002.ant.amazon.com [54.240.197.224:14249]
 by smtpin.naws.eu-central-1.prod.farcaster.email.amazon.dev [10.0.31.89:2525]
 with esmtp (Farcaster)
 id 614ee2ea-e14c-49b4-ad0b-cbc262a6a2f5; Mon, 6 Jul 2026 07:51:33 +0000 (UTC)
Received: from EX19EXOEUA002.ant.amazon.com (10.252.50.139) by
 EX19MTAEUB002.ant.amazon.com (10.252.51.79) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.43;
 Mon, 6 Jul 2026 07:51:33 +0000
Received: from CWXP265CU009.outbound.protection.outlook.com (10.252.51.199) by
 EX19EXOEUA002.ant.amazon.com (10.252.50.139) with Microsoft SMTP
 Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.43
 via Frontend Transport; Mon, 6 Jul 2026 07:51:33 +0000
Received: from LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:483::9)
 by CW1P123MB8207.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:261::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.10; Mon, 6 Jul
 2026 07:51:26 +0000
Received: from LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
 ([fe80::aead:951a:bfd2:3d03]) by LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
 ([fe80::aead:951a:bfd2:3d03%7]) with mapi id 15.21.0181.010; Mon, 6 Jul 2026
 07:51:26 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=amazoncorp2 header.d=amazon.co.uk header.i="@amazon.co.uk" header.h="From:To:Date:Message-ID:References:In-Reply-To:Content-ID:Content-Transfer-Encoding:MIME-Version:Subject"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1783324296; x=1814860296;
  h=from:to:date:message-id:references:in-reply-to:
   content-id:content-transfer-encoding:mime-version:subject;
  bh=dZJilOkYB8R8fHp6xBhAvfKTvSrwnKdlhvbWDdjvjpA=;
  b=MUoT+5ld93AJ4pPE9dg9co9TimhOn5reMDJSWdWV1rTh6ZBcj25tb0iL
   ikEw+cfnA4aHQhGH0TOVV8WFNrl3GZKOHavpvKHm0B2Bg2EJhEuGxF65h
   cHslEaOu3MgDkNY0D4xFmKTMEkQGn3aufN72AmVUUjiorIGr9hrEuzzLr
   qlf+h95EG+n4LRfjJ7GS6K3zbbOsZ4+0MM1icD5kN4eUYoadlXRbzA4JC
   eWT1HLl7NxeB7m68ih+K40ps2OciPKgvnBTEsr1ngWYc9q2FRGob018iV
   1MReQndzqQ3phj+psQvgLchrZtPBANdeTMue0RhwyCCLt88x3GqrpOd3W
   w==;
X-CSE-ConnectionGUID: zp3ElSqVQ8+de73sDX0Fxw==
X-CSE-MsgGUID: avAfbukcRGufxADFpaBqmA==
X-IronPort-AV: E=Sophos;i="6.25,149,1779148800"; 
   d="scan'208";a="16009789"
Subject: Re: Xenvif non-zero byte assertion error during teardown
Thread-Topic: Xenvif non-zero byte assertion error during teardown
X-Farcaster-Flow-ID: 614ee2ea-e14c-49b4-ad0b-cbc262a6a2f5
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gZAtRBp7UZfwuAjUELfiZeDDgasttrQtav+73TylXLVycSRfM+gjlskJRWpmonJRDm04WqtF1RqjGl/b8ZI0PkLUXk0gQLuAy5EuYfduouSz846mYgQAzRA97lbosiHVUx7Ow9ZJ7zYvT4UpbaxwvLeutxBBKzb336a/EZJJX2Uf37Du1wLEWL6gDTQtRLmoSgeJpZt7CqHabuYj7h9GbmMS5luntDXk7QtlMd5LXDrw0pSbsrOQW1yHeQPccQ9KwENhJfCbVXlbRNBRzbKdpsNJWe+0C0fuZAatD7UrRfILBXTuNI7oUQl64HDiG4E0/QY5C6d6plCrGAdBPf65EQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001; h=From:Date:Subject:Message-ID:MIME-Version;
 bh=dZJilOkYB8R8fHp6xBhAvfKTvSrwnKdlhvbWDdjvjpA=;
 b=OFBLNLUwugKHl2JL+IYYBgfXX3yPkbPl/jK1sNtygM7oKBWxFP5eJw6DnJ7gKEqoU3yZtz+YeJ8CuCDygFxgXORgrUNsCW4Z3cIbJ1VFP9FwR6JW5Vlz542du1xYGo9r/8gtsb+0ii63IB8RIUgJAtjusfBzMpZriGPreR0wTHeX9XAvhRiP9k5Gzm+D41kdj6uylx8bsuZLlXkGYAl8gqkuWeKvKsEpHSuP6zs/yBtH3wanhfa25wtSQejz2zlrx99SL7Dr70a7cFtcySCkIFUx/camTEWg6atWP2gZXnPovDkecnkYKgK0g9PC5Ussd/GTK7K4qRT5YystUqUHeA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amazon.co.uk; dmarc=pass action=none header.from=amazon.co.uk;
 dkim=pass header.d=amazon.co.uk; arc=none
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, win-pv-devel
	<win-pv-devel@lists.xenproject.org>
Thread-Index: AQHdCyKfsJpOQb/qzkKKIpiudCPyjLZgMtKA
Date: Mon, 6 Jul 2026 07:51:25 +0000
Message-ID: <8A9FDC87-F94B-420F-A088-48DB4DEB47DD@amazon.co.uk>
References: <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
In-Reply-To: <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Enabled=true;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_SetDate=2026-07-06T07:49:28Z;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_ContentBits=0;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Enabled=true;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Tag=50,
 3, 0,
 1;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Name=Confidential;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_ActionId=8aa42d9d-0c8d-4abe-9ff9-7b9f49d89e80;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_SiteId=5280104a-472d-4538-9ccf-1e1d0efe8b1b;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amazon.co.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LOBP123MB8876:EE_|CW1P123MB8207:EE_
x-ms-office365-filtering-correlation-id: 6f129c8b-dde9-4ed4-4f40-08dedb336194
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|23010399003|366016|1800799024|376014|38070700021|11063799006|56012099006|22082099003|18002099003;
x-microsoft-antispam-message-info: /xnQk0LvF9U19peomuBYf2CrSaxISrY8eIsBEM7ZAxY6/VV37s5+SSxQz+syz0D/BLuQReTrOzzJIO/TOjWKtG+Xq0Gop4ac01BhmQhFCFPXIqw4P5w36W/BmsF4U/4r15h6JHIFhKTemTrZ0+K1lXg5+1caV1DQhk+2yfymAtu0D10FNllJuR95gzO2bE+HnqkoqxG1VOG034L8biBPvz0moJ55PhT8rcTl2dVQDiMQiEeY+VkPNc8ybmtFsiJelpB9I5vlc9BZQlfWs7OWIzPDs0U+rcTNTK9K0D+t5+FNUZOS8Xreh4wm29nJWJ+keAn29e7YjFTsG6ONnyfCRkSBJBgWboZKDCukQUi9b5eH2mUNQYEvSQP4h2QTAGLRy2KD4D0yYqdYs9BnwTNQ2l7016mCApOKz7g2DRrVU6gkN06VVw8fBoB+jLPRIqwIEzZarAQmE01lSMM1RHXx9hLrVNQJmo/B8meqETQ9bVyyqgs39xyTbsCLpAeeDXziqWNDvbYQsxH9cVUYpKiowTGbnPFsidJwC4TqRo6tPTQvqqvPXrtkOW1J0HTUPa4k06afj0XK0UOVNyrK7KArYUY3SzKgUGjhnIbzFM3CUphPvuXIi+sNUGSrfCL+vZQzzpM0rxwthbWS07VVTb3Q9617wli9WqcSrNQGpWU0BS0YX3imajnaAUgr3veW5p8qWRocdsqn9oYFCEpFAHW+KIeOVQgT+bjfrjwTTH5acoc=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(1800799024)(376014)(38070700021)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MDBxSTVNcDZwN0FoeEdzWHhTRnNaQWNlbHZJT1Q5c0NxYmlUbXFPSVJpVHZE?=
 =?utf-8?B?Ykdra2ptRmZHbkZUSEpndlpPQkszeXJLSnVyWGVvTEg5RXhLaWlESmhsdExE?=
 =?utf-8?B?eWRqV0w2a0NNVHVmVFlIaldFeHkzcUNIT3MzM1poTzJaS2RzYWpIN29vZkJY?=
 =?utf-8?B?Z29BMGQ2NEpkOTZmYXlybHhuVTZnaE9WdDE5SU4zUVFYV2FxMDVSR1hpU2JO?=
 =?utf-8?B?NjJJTEhxNXFRMWM4K1Bqb3VFa1dCQ3k5azY4N3A4MHY4U0FIa3ZjSS9ZTnI1?=
 =?utf-8?B?S29PWjFHMkNkRnAweWFQWkJlN0svS2dJTjI3QjVnWU5wRUZUOTU0a281NEND?=
 =?utf-8?B?ZnpaK3crNEVlaVl3QXVZVHVHUC9nelRZN3FDZ2w4MFE1alN1R0xDYUR2cFIz?=
 =?utf-8?B?d0NmTG9Ud0R4UHJRUG1yNExoZmZrTVNJdzRJY0RLWWFzTkF4Um9XbW56b1dY?=
 =?utf-8?B?Zm5OeS9iU0JlaldIb1lKY3VpeXBnOEdsRGlGa1ljNzNyS01tanViTkJpMEoy?=
 =?utf-8?B?WlNiRS9WS2tiR201VW12eXgxdU83dEMwZllTcGdESzdkWnhIaHVJcFR6V0lz?=
 =?utf-8?B?OTJ4U0FOd1p2ZHQ5SzNDckFmUTNMSHorOGxRUzBPcXVjeGFwa2dtUkxOT2lV?=
 =?utf-8?B?TGU4eFpWRWJId215UkcvMG4zKzA3N29sQmVRaW5qK1R0eHZKcE9KWmlVbWZ5?=
 =?utf-8?B?MkxHaVdLcXRjMU1xb1k0eFV6M0ZMdTIzc3lLb2xsRFhHREJJeWNDZk9UZFBQ?=
 =?utf-8?B?UEhrWEZaTUNpMkl2dmY4UjdsNkJXWGpValhyeVhiekxLU2tkWmNPT0t5aWVP?=
 =?utf-8?B?NGxENEtteitMamJrL2lxTlJHdjZmOWxPSndKL1A3RGM1S2kzb2FXNmpyM094?=
 =?utf-8?B?NGhtZ2pTMXVhQ2FndmJyWXB5WkU5VUF4UnR6Q2xFcWxsT2FJMHgralhFSjFU?=
 =?utf-8?B?WFNsd2F3VzVVVEEveC9ZT0lOUHJ2dTMxaVllS0Vjcm9qOEJzczRGdW9mV0RQ?=
 =?utf-8?B?UEVaRUM3TEUwR0RsK3p2NnphckcwNXdCdmhnSTRlbVJrYno3OXVwL0R2b3k1?=
 =?utf-8?B?Qmd5elhwTFoxd1JUNzF3d2NJZ2J6VVFTSkh1a3A1OEdKUENJLytGTzZBRW1R?=
 =?utf-8?B?dC9oS21PbDNMK1NyV2Q1VStIaDFQaWJRRDZmejZOcG0vdnZKTzRvMGRSUUhr?=
 =?utf-8?B?WFRnak0vOHgzUVlMYTQ4dmFmT1AxNWkycTVzOEpiL1QxV1hwdUIyVkkxbVVZ?=
 =?utf-8?B?eE1SMXZ0OC9JVnF6QWhnTkNxR3czaU5jamNISVpUWkVCL3pZMGpQVFh1dXhh?=
 =?utf-8?B?S1VOaGdtWjNHL0Y1OFFuUlN4WXBNMHYvRjFHaExGa3A0YzRDM2xhdWFUWXNq?=
 =?utf-8?B?by83ZTZvcXh4aU5EUm93Q2RiZ3BYSVNMZk1yQjU5K0VYMDdoQmduY1liRWo5?=
 =?utf-8?B?RDlZRFp3NHJCb2todUEzT1RuRmp5bUJMNkFsclFGbVJBMUgybTU2d2MyQWVF?=
 =?utf-8?B?N0piUVk0N2hCVzBhL3ErcG1iY1hlbjY4bWNzNzVJdW9pV2hFdlBnMDNObW5G?=
 =?utf-8?B?NmdtNEhnZ1cwaE8yUHBXQm9mL0YrOHZJOW9PdTUwb0hIVHZQTHpwTXBieTdw?=
 =?utf-8?B?dU1vTDE5QzU0WVFqc0RrblMxNVhQcU9ockpxTEhRVDBIN2dxWkgrNXhDU0RP?=
 =?utf-8?B?d3E5TUNWeFVvTVRQSFhWV3lzVGNqbHNuNmFrUkJxMUlld3BnRndMU1JzR2NN?=
 =?utf-8?B?bzlPYm9kTDB6ZG1jdHlMMU02amhjTHBRT1ZNdkNmUE8xQjFvVWpBVVNPWlBP?=
 =?utf-8?B?QlNtYWVXNEZpS1Yxei9SUGM0RFpKenhCeUlvVmd6NXNUVzhNaEdBVW9iMktJ?=
 =?utf-8?B?RVpMeGdBTE44R2NkaXV1MnpnZ1NxbUFDR1NHbXFSdVpvRTdVTnlhY1J6b1dq?=
 =?utf-8?B?aEtSaGxjeGx3Q09pM2wza2NOMHBQRFNIcnV5QlNXZFE2NlE4bDFQZEw1aTBo?=
 =?utf-8?B?TEdGbjM2cE9FY2RCeURIQnpyVmNrMzFtZVhwVW0rQU9VVFlJaFJyYzlabVgv?=
 =?utf-8?B?RjZ3Q2dOT3ZqV05PaDZaU1kvZ2I3dTF6UDBGem9uWUJ1aEduWDBlQU5PZGVi?=
 =?utf-8?B?anMrdmtIVjdvUUdGTkd5eU1XVzFHNi9EUHJ1TCtuVUV3SFkxbE5IYmVibXVX?=
 =?utf-8?B?Mk5EQ2xiREduRzZ5dG10b1MxeklId2hLeFdyWjIrUWsrT25UYVN6YmJ1STc5?=
 =?utf-8?B?N3J5c0dReDBpdWdLQmptMTlnUTdkT0xZdmxQdkdnWHRxYnAzRnkvL2dlMDVY?=
 =?utf-8?B?REIzNWNpK1BEcnRuYW94UWhPREppQ2c3M0hrekRsaVFUZVJ1cTlvdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4DF4A686B0417944A49BB00CF1D3C001@GBRP123.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked: CtexpsDGzyBZXktRGiiuC5R9Feijb5V2ipgwoy+DkmGfCb0OvtbPwTWxGgCoARgFvUs2jdvec1TLVKAM0S+2jvLPcIaQVggOXk8V1Xc9m/lG8Poiq46MiFH628yISz6+OjJ6v1K6fxGsg7wyMxtj83hDyqN0tC6zJGHmgHErJpwNdcfFTumm2WzL0hzXKCgC22BtD3tYjswrDfavFBZeZTIcajV/jWkdcCFjT7n418ebeKQuoh7gPQyf1eVjgVXNhB5TLKYyoL6iR/oKtz+Pv49oSHuE/VO1ejSU6Bv+wn9Go5caY/6dHLR2Kk4UHUpW3PPKtOfn/E4bSXRxPZEICg==
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 6f129c8b-dde9-4ed4-4f40-08dedb336194
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2026 07:51:25.9443
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LJiA6nSIb+7xgw4CQUUCR8SKCPmsN7Pi4wFZKcxBvyahH7/OKl9ilVbg/E9t4dCAw9sFTWgyIQCfeeGbPNbdqQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CW1P123MB8207
X-OriginatorOrg: amazon.co.uk
X-purgate-ID: tlsNG-16d1c6/1783324297-C7F2C68D-5A7DCE0E/21/137
X-purgate-type: clean
X-purgate-size: 518

PiBzdHJ1Y3QgX1hFTlZJRl9GUk9OVEVORCAoYW5kIGxpa2VseSBvdGhlciBzdHJ1Y3RzKSBhcmUg
aW4gZ2VuZXJhbCBmdWxsDQo+IG9mIHNpbWlsYXIgcGFkZGluZy4gU28gdGhlIEFTU0VSVChJc1pl
cm9NZW1vcnkoRnJvbnRlbmQpKSBjaGVjayBpcyB0b28NCj4gc3RyaWN0IGluIG1vc3QgY2FzZXMu
DQo+IA0KPiBJIHRoaW5rIGN1cnJlbnQgSXNaZXJvTWVtb3J5IGFzc2VydHMgc2hvdWxkIGVpdGhl
ciBiZSByZW1vdmVkIG9yDQo+IGNvbnZlcnRlZCB0byBhIHByaW50LW9ubHkgd2FybmluZy4NCg0K
V2hhdCdzIHdyb25nIHdpdGggemVyb2luZyB0aGUgc3RydWN0IG9uIGFsbG9jYXRpb24gKHdoaWNo
IGlzIHdoYXQgaXMgc3VwcG9zZWQgdG8gaGFwcGVuKT8NCg0K


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 06 09:21:40 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jul 2026 09:21:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1355202.1609949 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgfWF-0004Ie-08; Mon, 06 Jul 2026 09:21:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1355202.1609949; Mon, 06 Jul 2026 09:21:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgfWE-0004IX-Tl; Mon, 06 Jul 2026 09:21:38 +0000
Received: by outflank-mailman (input) for mailman id 1355202;
 Mon, 06 Jul 2026 09:21:37 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f36bb952e00080a8@swg.vates.tech>)
 id 1wgfWC-0004IR-9C
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 09:21:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wgfWA-002kir-VZ
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 11:21:34 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f36bb952e00080a8@swg.vates.tech>)
 id 6a4b739e-e002-0a2a0a5209dd-0a2a450aa238-2
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 11:21:34 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f36bb952e00080a8@swg.vates.tech>)
 id 6a4b739e-e40e-0a2a450a0019-b9ff1c12943b-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 11:21:34 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f36bb952e00080a8.002 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 06 Jul 2026 09:21:30 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 4DB3981DCB;
 Mon,  6 Jul 2026 11:21:30 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=Dx5uEy4Nst1tykciPxLDI2OoXnlEJLwmYqOspC1be8E=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=PwNu/k/g9ktbPRcpE+UZEND31Dko3aJZiEANqorwljYPMbnE4nCf969CIY1z3IBLjDhJg8vB/
 lhEO9BYO91EO/8NzVZysxDp7KPYrNpPiQ5u7ZSt2HdJeqhv6ID56z7aeCw1yPpFVHW4qVbn5IDA
 d54MEik5RhxrDxo0fzMip2y5j8eiF/Bcmw2N5K4qjTUpIMyR9KT5tunWMZ8fGTnzrBDuqZps5aT
 8XxK+DLJraHzBiZbb7NujnV54P1MRW04fYAhwvjqu+xSIAYiN3BnEln5J+7SNGUU4wl/fSDYgh2
 FMrruCXs67f+HdoQuipnYe8UxRW5jDRRB3epzv3wGCaQ==
X-Zone-Loop: 9548551c2edc930e4f08698e91a73f89236a1c48c48d
x-campaign-type: default
x-transaction-id: 4e8ff51a-1665-45b4-aaa8-64536f8548d5
x-swg-uid: 01-2f2c7ef9-144e-4251-a310-3323fcd432c2
X-Mailer: Sweego
Message-ID:
 <1783329691.8631fc262581453bbf619ec5b2062170.19f36bb952e00080a8@vates.tech>
x-swg-bid: 1783329691.8631fc262581453bbf619ec5b2062170.19f36bb952e00080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 6 Jul 2026 11:21:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xenvif non-zero byte assertion error during teardown
To: Owen Smith <owen.smith@citrix.com>,
 win-pv-devel <win-pv-devel@lists.xenproject.org>
References: <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
 <SA6PR03MB7760E2212FD35D006DC42BBDFEF12@SA6PR03MB7760.namprd03.prod.outlook.com>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <SA6PR03MB7760E2212FD35D006DC42BBDFEF12@SA6PR03MB7760.namprd03.prod.outlook.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.22d.8aae4f1130f5b758.19f36bb9301.39ceb801bcd8d6ed=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783329690369
X-purgate-ID: tlsNG-4011c0/1783329694-D5527DDE-9AD4F2CD/0/0
X-purgate-type: clean
X-purgate-size: 3769

---=Part.22d.8aae4f1130f5b758.19f36bb9301.39ceb801bcd8d6ed=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

On 06/07/2026 08:54, Owen Smith wrote:
> Hi,
>=20
> Does this imply that something has written to these padding bytes?
>=20
> _XENVIF_FRONTEND is allocated and zeroed with RtlZeroMemory - so all byt=
es
> should be 0 initially=2E Nothing should access these padding bytes direc=
tly, so the
> ASSERT should be valid

Yes, I think that's likely the case=2E Struct padding bytes have=20
unspecified values and compilers are free to emit code that overwrite=20
them even if we don't access them directly=2E

>=20
> Owen
>=20
> ________________________________________
> From: win-pv-devel <win-pv-devel-bounces@lists=2Exenproject=2Eorg> on be=
half of Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
> Sent: 03 July 2026 8:30 PM
> To: win-pv-devel
> Subject: Xenvif non-zero byte assertion error during teardown
>=20
> Hello,
>=20
> It's possible for xenvif to hit an assertion error during teardown due
> to non-zero bytes in the _XENVIF_FRONTEND struct:
>=20
> xenvif|_IsZeroMemory: FrontendTeardown: non-zero byte in Frontend
> (0xFFFF84857C8D6AD0+0x64)
> xenvif|FrontendTeardown: ASSERTION FAILED: _IsZeroMemory(__FSTREXP
> __FUNCTION__  , "Frontend", (Frontend), (sizeof (XENVIF_FRONTEND)))
>=20
> 0x64 belongs to padding area:
>=20
> 0:000> dt xenvif!_XENVIF_FRONTEND
>      +0x000 Pdo              : Ptr64 _XENVIF_PDO
>      +0x008 Path             : Ptr64 Char
>      +0x010 Prefix           : Ptr64 Char
>      +0x018 State            : _XENVIF_FRONTEND_STATE
>      +0x01c Online           : UChar
>      +0x020 Lock             : Uint8B
>      +0x028 EjectThread      : Ptr64 _XENVIF_THREAD
>      +0x030 EjectEvent       : _KEVENT
>      +0x048 BackendPath      : Ptr64 Char
>      +0x050 BackendDomain    : Uint2B
>      +0x054 MaxQueues        : Uint4B
>      +0x058 NumQueues        : Uint4B
>      +0x05c Split            : UChar
>      +0x060 DisableToeplitz  : Uint4B
>      +0x068 Mac              : Ptr64 _XENVIF_MAC
>      +0x070 Receiver         : Ptr64 _XENVIF_RECEIVER
>      +0x078 Transmitter      : Ptr64 _XENVIF_TRANSMITTER
>      +0x080 Controller       : Ptr64 _XENVIF_CONTROLLER
>      +0x088 DebugInterface   : _XENBUS_DEBUG_INTERFACE_V1
>      +0x0d8 SuspendInterface : _XENBUS_SUSPEND_INTERFACE_V1
>      +0x128 StoreInterface   : _XENBUS_STORE_INTERFACE_V2
>      +0x1b0 SuspendCallbackEarly : Ptr64 _XENBUS_SUSPEND_CALLBACK
>      +0x1b8 SuspendCallbackLate : Ptr64 _XENBUS_SUSPEND_CALLBACK
>      +0x1c0 DebugCallback    : Ptr64 _XENBUS_DEBUG_CALLBACK
>      +0x1c8 Watch            : Ptr64 _XENBUS_STORE_WATCH
>      +0x1d0 Statistics       : Ptr64 _XENVIF_FRONTEND_STATISTICS
>      +0x1d8 StatisticsCount  : Uint4B
>      +0x1e0 MibThread        : Ptr64 _XENVIF_THREAD
>      +0x1e8 Alias            : [257] Char
>      +0x2ec InterfaceIndex   : Uint4B
>      +0x2f0 AddressTable     : Ptr64 _SOCKADDR_INET
>      +0x2f8 AddressCount     : Uint4B
>      +0x2fc Hash             : _XENVIF_FRONTEND_HASH
>=20
> struct _XENVIF_FRONTEND (and likely other structs) are in general full
> of similar padding=2E So the ASSERT(IsZeroMemory(Frontend)) check is too
> strict in most cases=2E
>=20
> I think current IsZeroMemory asserts should either be removed or
> converted to a print-only warning=2E
>=20
>=20
> --
>   | Vates
>=20
> XCP-ng & Xen Orchestra - Vates solutions
>=20
> web: https://vates=2Etech
>=20



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.22d.8aae4f1130f5b758.19f36bb9301.39ceb801bcd8d6ed=---


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 06 09:25:11 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jul 2026 09:25:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1355204.1609954 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgfZf-0004ST-AD; Mon, 06 Jul 2026 09:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1355204.1609954; Mon, 06 Jul 2026 09:25:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgfZf-0004SM-7H; Mon, 06 Jul 2026 09:25:11 +0000
Received: by outflank-mailman (input) for mailman id 1355204;
 Mon, 06 Jul 2026 09:25:10 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@swg.vates.tech>)
 id 1wgfZe-0004SG-3h
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 09:25:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wgfZd-008dX1-5v
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 11:25:09 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@swg.vates.tech>)
 id 6a4b7462-2eae-0a2a0a5409dd-0a2a450c82ea-46
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 11:25:09 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@swg.vates.tech>)
 id 6a4b7474-f399-0a2a450c0019-b9ff1c229f2b-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 11:25:08 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f36bee41d00080a8.002 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 06 Jul 2026 09:25:07 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 2CEFC81E24;
 Mon,  6 Jul 2026 11:25:07 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=KjQNZfFVYv3uavg2E7hmHBO03NNg8lUm5yNZcLzfg2Y=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=ZyKLGBLDXpX3kAWJ7LhqjkfThFqTnobqpJSi8qrgDxM2NAuujaUGRPG1te92bLP3A8YkRfSNd
 xTGV5WXB9WLs74gp00xe70uOCzohgz6i7D7ltsqeanojcG132qPeDVXO0/Achotiz7QKSLcu723
 OJN0wTSOba1DmgNmRMJsDUE5KoB+QVXpv2Ke/9iNWgzC1+4ShFAxLwTRnr+T62FS5Ufq/Dlp1/9
 aaeUJB2NVkjEJd01ny3C9ZuIjNo9ss1BM6Fb2vixsgSxWhUs8nIsIufzl3p0VL4FZugY4MMTxSP
 TOELihKcotoavY68iI8gwxfkRwHKBTa9nPoTSCpxs/dg==
X-Zone-Loop: 182931795385bf08cdc93d0913c1206013c4b1cc0b6c
x-campaign-type: default
x-transaction-id: 3ba1e819-c740-4978-afeb-ac56560d2ace
x-swg-uid: 01-2fd5e472-135e-4765-b658-70e58ed965b8
X-Mailer: Sweego
Message-ID:
 <1783329907.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@vates.tech>
x-swg-bid: 1783329907.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 6 Jul 2026 11:25:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xenvif non-zero byte assertion error during teardown
To: "Durrant, Paul" <pdurrant@amazon.co.uk>,
 win-pv-devel <win-pv-devel@lists.xenproject.org>
References: <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
 <8A9FDC87-F94B-420F-A088-48DB4DEB47DD@amazon.co.uk>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <8A9FDC87-F94B-420F-A088-48DB4DEB47DD@amazon.co.uk>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.230.38789197e09d0cd1.19f36bee21f.da0c90e40a9684bf=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783329907232
X-purgate-ID: tlsNG-d25034/1783329909-0D526D51-67F1FFD2/0/0
X-purgate-type: clean
X-purgate-size: 1071

---=Part.230.38789197e09d0cd1.19f36bee21f.da0c90e40a9684bf=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

On 06/07/2026 09:51, Durrant, Paul wrote:
>> struct _XENVIF_FRONTEND (and likely other structs) are in general full
>> of similar padding=2E So the ASSERT(IsZeroMemory(Frontend)) check is to=
o
>> strict in most cases=2E
>>
>> I think current IsZeroMemory asserts should either be removed or
>> converted to a print-only warning=2E
>=20
> What's wrong with zeroing the struct on allocation (which is what is sup=
posed to happen)?
>=20

Struct padding bytes have unspecified values and compilers are free to=20
emit code that overwrite them even if we don't access them directly=2E So=
=20
even if a structure was zeroed on initialization, its padding can't be=20
guaranteed to remain zero on teardown=2E


-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.230.38789197e09d0cd1.19f36bee21f.da0c90e40a9684bf=---


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 06 09:32:46 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jul 2026 09:32:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1355206.1609958 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgfgz-0005cD-R3; Mon, 06 Jul 2026 09:32:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1355206.1609958; Mon, 06 Jul 2026 09:32:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgfgz-0005c6-OF; Mon, 06 Jul 2026 09:32:45 +0000
Received: by outflank-mailman (input) for mailman id 1355206;
 Mon, 06 Jul 2026 09:32:44 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 1wgfgy-0005c0-Fw
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 09:32:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wgfgx-002oGZ-5H
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 11:32:43 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 6a4b7637-bab6-0a2a0a5309dd-0a2a4505c9f2-8
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 11:32:43 +0200
Received: from [18.199.210.3]
 (helo=fra-out-014.esa.eu-central-1.outbound.mail-perimeter.amazon.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 6a4b763a-3cb2-0a2a45050019-12c7d2030559-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 11:32:42 +0200
Received: from ip-10-6-3-216.eu-central-1.compute.internal (HELO
 smtpout.naws.eu-central-1.prod.farcaster.email.amazon.dev) ([10.6.3.216])
 by internal-fra-out-014.esa.eu-central-1.outbound.mail-perimeter.amazon.com
 with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2026 09:32:38 +0000
Received: from EX19MTAEUB001.ant.amazon.com [54.240.197.234:6211]
 by smtpin.naws.eu-central-1.prod.farcaster.email.amazon.dev [10.0.9.225:2525]
 with esmtp (Farcaster)
 id d82d2f9a-5613-41df-9ffa-db7494ca8fc6; Mon, 6 Jul 2026 09:32:22 +0000 (UTC)
Received: from EX19EXOEUB002.ant.amazon.com (10.252.51.83) by
 EX19MTAEUB001.ant.amazon.com (10.252.51.28) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.43;
 Mon, 6 Jul 2026 09:32:22 +0000
Received: from CWXP265CU009.outbound.protection.outlook.com (10.252.51.94) by
 EX19EXOEUB002.ant.amazon.com (10.252.51.83) with Microsoft SMTP
 Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.43
 via Frontend Transport; Mon, 6 Jul 2026 09:32:22 +0000
Received: from LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:483::9)
 by LO4P123MB6802.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2f8::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.11; Mon, 6 Jul
 2026 09:32:19 +0000
Received: from LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
 ([fe80::aead:951a:bfd2:3d03]) by LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
 ([fe80::aead:951a:bfd2:3d03%7]) with mapi id 15.21.0181.010; Mon, 6 Jul 2026
 09:32:19 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=amazoncorp2 header.d=amazon.co.uk header.i="@amazon.co.uk" header.h="From:To:Date:Message-ID:References:In-Reply-To:Content-ID:Content-Transfer-Encoding:MIME-Version:Subject"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1783330362; x=1814866362;
  h=from:to:date:message-id:references:in-reply-to:
   content-id:content-transfer-encoding:mime-version:subject;
  bh=12ISgU8ZHyY4qPAdqYxEKUiz+5B1UyB1nEKLGCxNt3Y=;
  b=Nv21tAhb8VHOZMT0HpKnxCbRvhzCyJZ9tamQxwVEXmK2d9ySpyIL8xZ+
   OY7YJwecRgPKVmKfMRJu9M6aJUYz35YSFrU8xqAGeourekf7QqoQDRWem
   GfI0KEvKNRN830jEW5RoytiyRixFd4NTB+6pfZWciVxcZLxARq3l245NB
   zOgnEztRV3YOzz0VuLJhv+V6WkT43lql485bSNuUsk9Mu4XyarGgfIB50
   KbF5qwyV/Ry28wKH8qa+WZLM/FCkjMgz/oldf0s5PTFfdMFSec/jo7snh
   oSGN4OHCDmCXoRq7u3bjPOfEE7Lu63iYYI6YX5gw5isYPosU05j6OYF2w
   Q==;
X-CSE-ConnectionGUID: BaDdKnMWTLWLopK4ouRWcA==
X-CSE-MsgGUID: 5iSPnYJLT+iH4VQM+TrE8w==
X-IronPort-AV: E=Sophos;i="6.25,149,1779148800"; 
   d="scan'208";a="15969921"
Subject: Re: Xenvif non-zero byte assertion error during teardown
Thread-Topic: Xenvif non-zero byte assertion error during teardown
X-Farcaster-Flow-ID: d82d2f9a-5613-41df-9ffa-db7494ca8fc6
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U7hNwA2l2yA9eIraEayKmnySJMYhLKnyOMXWHLh41NpLCzleAiiLdIbiqXicpyOL6GTCrzmruJvb9am8RIw6GsbfCijFZj7HOxaCoskz2NKJXxwuSpnax/qW6ClKw3BvjSI2LjH1ubl2Lbhk+16bk3KsUcafyhmnQAHj39jWrpvefNEQQ3cfqMXQM15YThwSGaYLfJh/VU+3geoyteLTOSjafY0mYmIB0/yQ5trKrS1BqjPJk0jVSCZq2ziiRAVFldd+7aVvPCGBMBjVDq6i7FiJIaCzYrKwYgkdn3rbAcxGejiYmtaubr+mYDvZgm2l0zRrBAjFswoY8F54BZDJdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001; h=From:Date:Subject:Message-ID:MIME-Version;
 bh=12ISgU8ZHyY4qPAdqYxEKUiz+5B1UyB1nEKLGCxNt3Y=;
 b=K2wXz67ayX2wv1QBocdGM8dNIYyZNZtF5unJ5Np7KXNFlcVkE8jMvlr7J9FxcLBzwUZa4U06IDMJ8kEH4dbiS8cHh2rTmLVsrEmlZ0W3/Rij+zRjvMSxKvnBzEN2QOB/4s7Ekve+dJ6NAjcvLVWejiApr+ioonKuBaqVmdepKgvYO7dlBcAcp9p1m8ZgvPRDD3afm6E2FUOaFTvzg7BWt4hBYYlV4p53qHTOShZcyHeZnyUvoa8XW0K3PppBMY6ZVngOVMxmfoknVCz8cPPycTIhrSFa3sCGii56bsgM6FEpKhY2HM5sqcW3iFvhpA91PRREkEDMmrU5oxBY+Ri3aw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amazon.co.uk; dmarc=pass action=none header.from=amazon.co.uk;
 dkim=pass header.d=amazon.co.uk; arc=none
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, win-pv-devel
	<win-pv-devel@lists.xenproject.org>
Thread-Index: AQHdCyKfsJpOQb/qzkKKIpiudCPyjLZgMtKAgAAJkgCAABLIgA==
Date: Mon, 6 Jul 2026 09:32:19 +0000
Message-ID: <26B03178-5010-48AE-8682-4FC442B0AAD6@amazon.co.uk>
References: <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
 <8A9FDC87-F94B-420F-A088-48DB4DEB47DD@amazon.co.uk>
 <1783329907.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@vates.tech>
In-Reply-To: <1783329907.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@vates.tech>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Enabled=true;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_SetDate=2026-07-06T09:30:59Z;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_ContentBits=0;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Enabled=true;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Tag=50,
 3, 0,
 1;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Name=Confidential;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_ActionId=90b22752-0fde-4701-a7a2-69140729140f;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_SiteId=5280104a-472d-4538-9ccf-1e1d0efe8b1b;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amazon.co.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LOBP123MB8876:EE_|LO4P123MB6802:EE_
x-ms-office365-filtering-correlation-id: 7a91594e-4107-4e7f-7eac-08dedb4179d3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|23010399003|366016|1800799024|376014|22082099003|18002099003|38070700021|56012099006|11063799006|4143699003|6133799003;
x-microsoft-antispam-message-info: Qfk4D3JWXiJQHXLjOqVR6S8MGRAngomMyr1owxqecadCKfXzHRiJaqzrc0IFUO+XM55ICr11OUs2kC9uCwX86GUD/JGzSrU02qpKzvUs12LxWINOv8MGwL1EfIyP+8Br7S3qEpac+NG3y1+t2ErQNcJ+AIKt1VdXXM+jK2U9xN+z7K+Df080mdwFWkJUyrGOfJsk7IAOEWJUUGTYr0BO7ynOvCgypqvqlIiq8a/l6tZ8231rUNQ+Zn39ta339KmmbE4bBX0vdW5S+WJQZpCgWvaITmTktysBJtix1x5A7sbN8kWLyIEhnG8mtMS1tMbBTD8hrxSFHM9eyNLPpzFFgVjIcWZJ45viFUZrGBJj9wAYk7eNxr63fOvL3MD84c1qRLt7pcM2hHXdIhuH9Cbiu0dvXnfNuOxtyAWRVlkc/S+xern9Ykkjx3Cw3h1nOCU2/m5wLeTleSF/EHRZwPLdb+D/BK9nlNIMuz/vpvoWwgj9fo8o2WsZ7Q65JJm6lpwgWJnxVGAqksZOxylSqGXKLaZn9mbL8pUS4ENisJIxqI01qPAktuHlfz2VBieAmJdHy1UpO91EOja1lf2u/gW3s7zpaE1ENbtXpVzz0kcrCZPXDocTYY5TJ7ybH/rPl5yMwxUTqfQdbq6w3936lnqnjfx63gSGKTaWoBglkjfIWr26l2kJ+dc4xQCT997xNaAevwUMy8WTjIzM8xJMzKM+PO7nSQhAx3u/E3kEvlLYyx4=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(1800799024)(376014)(22082099003)(18002099003)(38070700021)(56012099006)(11063799006)(4143699003)(6133799003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MGpJeVd4WUhvMElQdm5ZNFY4TFZxZ0VPRWhuTUcyNDBhN2xBUHJiSFdvL25a?=
 =?utf-8?B?NVAwU3N5Q0hFL1ErUVlhSUZuUTlJTWsvM1dwRnZlZE1GOVBQOVY3TG0yTEtz?=
 =?utf-8?B?dXdhamZCbWEzL0xMNWl2R1RCT1NQeTJ6L3E4OVMrQUZqUS9McXg4WktqR0Y1?=
 =?utf-8?B?R2FZRmJIWlBOdzRZZzNkWkNqMXQ4VURIQ2xDOURkdE82UU1acTcwQUxlN2ZE?=
 =?utf-8?B?N3AzaXlzbUZkNFMyUTZ6LzA5M043Vk1lZ2kwNGdZU0FTcVpiZ3dvTkpRa2Iw?=
 =?utf-8?B?cWxRcHNKbXd1dkwzeFp5c0N3MTNEWHVSQm00Z0w0VFMvYjhrMTJVWmpLQnN2?=
 =?utf-8?B?Q3N5T044L21oZjVCWVRDeC9rVEpURXdXSmFxemluVTQ3bUk3c2gybCtyQUxN?=
 =?utf-8?B?aEFBeUpOc29NQThPWTZtVWZOUktEZTBiZUcydUxydWx6SEUxQ3ZRR1h4b1Yy?=
 =?utf-8?B?YXBxc2hTbzZEN0I2K3ZIY3Rnd2tMZDcxc0ErT2wyelFaeDMyTVRBQ29SeHNJ?=
 =?utf-8?B?di9mNzJBYWt2Z2FtZ3dqeThFWkRLU0F3UzlPWC9lUGVTODMvSFZCeTdjYWJ5?=
 =?utf-8?B?VzBrQ21uT3k5ZXV6OXhldmYzTlpvM3RtVzZPQkN1WngvQzZ0dHQ5Y1BLVXJv?=
 =?utf-8?B?YjFkNWcwaURBMDVBOThzMUsvc2ZFL0htSUdrLzVTV0FHTmRMSmV2dmVTNlRn?=
 =?utf-8?B?UEhlS01iVGNMU1lEL1JMdmduK3pvK0FOdk95V2RxWEVnbUF6dmpTbmUzRzdJ?=
 =?utf-8?B?dklBRkI3Vy9QK0hOOWdDdnh2M1RYMGx4YTJCQVoxS2ZVR3NwMEgyRmxieHhP?=
 =?utf-8?B?T2lMZGJwL1doYjlObzEyMkEwMVpsMzhmUlhMS3MrVlcrdXJCRXJna1FTYXhS?=
 =?utf-8?B?TkY3L3RBbkowUXp3Y2lrN2VKMGFkRmNuc1psODlqazNRay82d3ZEU2tOMnBP?=
 =?utf-8?B?RGMrRUMrdG9UVWdvTmt5cnR3N1dCUk1DeVYyN2pUNHFEY2N4OFdOTElkLzJG?=
 =?utf-8?B?WEFQTzhVK3pXdEJodExuRER0TFNEbEozVitZWE1UVTdpbysrNFBmVDIzYlhM?=
 =?utf-8?B?b1Z5bjgxSXNPaFFsakRwVExHaks1Y3RWOURJcFYrZ0lqcnNOOHcrVU5GeG14?=
 =?utf-8?B?VG00NUFLaVNpclZBdkxTRUdha3hpNFNUdEJYTkxnLy9RcVNOMWNSY2w1RmFZ?=
 =?utf-8?B?eGxUOElndDRpNHNEZ0FWcU1UN2JyUUp1OXZVWkNiZzJOOVgyMWtaT05HVjRZ?=
 =?utf-8?B?dDkzRTZ2Kzh0RFZIaG5mSTVXOThyYXJ2U211dkU5WGtMY2d3RTFzRzJVN3A4?=
 =?utf-8?B?OTlGUURHbk1mMDlHYmhWOG1rNXZZNkVpb04wenRPVGZDSmFnbElBTmVHT0li?=
 =?utf-8?B?ZjN2MXNzbnJQZVFYRXpMTjBZSUVQbXF4QndWdk9hYkdidVMvaXFZMzlpb2g3?=
 =?utf-8?B?SmljaERBZ0N6WWhGbW82Y0R2K0Z5UlNoQXkxa2Nlc2haMTY2S3kvMG9RTWRh?=
 =?utf-8?B?c2hObjdFSkxCNHlpeGJRRjlvWTdQRHgvNHBvSVJyV0syLzlLZi9ock5mR1lT?=
 =?utf-8?B?dmhJb01FRjJNUEJyQkFyKzdzTUJWcCt2eDdkcnBHTkdGVmEzM0JFQmxwQUI4?=
 =?utf-8?B?OFhyK0lmQ01oUUU1SnMyZjZ2andYcU1RQVF2WXFNRHdUM3c3cFE0S1hNK3l2?=
 =?utf-8?B?VjIzWHhXenQ5WkpMRitDTFpMZkxWTEJEZ2hWTjRrbGhyNUVWLzk4d2w4MnZY?=
 =?utf-8?B?VFpLUG9Xa1RoNDNhUERLNStRcktERU9EQ0QvZ0JVVmZPdnZpaEdYZktpQ1VU?=
 =?utf-8?B?K2E0aVh4bTFicGZEeFlYRjl6d0VNTVBEMG5lQ2JOSXI4eWVmYkp1ajJIRUtl?=
 =?utf-8?B?a1pGWU1tRGR0TVBvM05iTGVDSWg0eUtOSDVtdmdhb25TNC9MbmZnNHdoZ3c5?=
 =?utf-8?B?bDRnNm01OHhJUUdpcHRZYnB0WENHV3ZwMVhJVW81b0UzMGJkSXpmQVhqTG9F?=
 =?utf-8?B?ajZ5TzROU1hZSmUwcnhlY0tHbThlV0YwSXZDdG1VTlRoMEo3NkkzRW01WFVV?=
 =?utf-8?B?UEJRa3FoeHRCdG5VTTg1eEU4eXBVMUdsS0VSeHo2cVlEWTdoRndEM2dYamls?=
 =?utf-8?B?UFJqc3hCV3ZDWUxiYkIxUnB5TUR5c1k0dmpNZUgxS0tuc0hLVTh0N29vL1Zo?=
 =?utf-8?B?aE1aY2RCQWJXOERHTFRPd2I2a3l0UGl6M0pWYW1oakJkeld5WkhDdEdZc1FK?=
 =?utf-8?B?SDRZN2dSY1R0YjVwbzBOazQ2dERuWEp5N2NvTEhxRjUyZXhxem43RnhlUE12?=
 =?utf-8?B?Tmk3MVJlUmVGRHQ0OHh0WWZuaStaQWZtMTZIdFY1dmRpRkVGUndDUT09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7430B0EA95A1DB42A5DE403E94EECA52@GBRP123.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked: hbnK64x2M/1b1jNIlb+rK5AMaNsuvXXfOjJjqXDR2pBFfOZ0gWI9l6JJ3jA7Sc7n9v7jKEtT9v31yQ44PbHMyMbaFZ1e7U3xLJcZU8miohT40lrqVp7qfSNKi49kjaamVUjs8CmyTj1LzYV8xSws/RMrAl8SGWhpim9Qw7EdogbeVRN3hDbnD7YIoclbFHhnYqNFLPz5AJ2KDHYssHEF70TT6cdfA/8n2bCXQv3sMlO0p9uToheOdNfpjMWlGaZ8SVEHAcAygSxVD3BD0cZq9ar67dC/++CCTxiXrihoxAk52YM6If4t5XmgVlnIJ+pmaExWvjYAVjLHoVhSBCHnig==
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 7a91594e-4107-4e7f-7eac-08dedb4179d3
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2026 09:32:19.6373
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 2gm9rkdP1imTIL3V7n0X1O9Mm5ccIRKBLXb5IHcU/Tk/HHmWt3oXxC4IbVyDUWybOedp0MMB266rPQVbFhIkew==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P123MB6802
X-OriginatorOrg: amazon.co.uk
X-purgate-ID: tlsNG-c201ff/1783330363-165122B8-7B1FBD49/21/137
X-purgate-type: clean
X-purgate-size: 694

Pj4NCj4+IFdoYXQncyB3cm9uZyB3aXRoIHplcm9pbmcgdGhlIHN0cnVjdCBvbiBhbGxvY2F0aW9u
ICh3aGljaCBpcyB3aGF0IGlzIHN1cHBvc2VkIHRvIGhhcHBlbik/DQo+Pg0KPg0KPg0KPiBTdHJ1
Y3QgcGFkZGluZyBieXRlcyBoYXZlIHVuc3BlY2lmaWVkIHZhbHVlcyBhbmQgY29tcGlsZXJzIGFy
ZSBmcmVlIHRvDQo+IGVtaXQgY29kZSB0aGF0IG92ZXJ3cml0ZSB0aGVtIGV2ZW4gaWYgd2UgZG9u
J3QgYWNjZXNzIHRoZW0gZGlyZWN0bHkuIFNvDQo+IGV2ZW4gaWYgYSBzdHJ1Y3R1cmUgd2FzIHpl
cm9lZCBvbiBpbml0aWFsaXphdGlvbiwgaXRzIHBhZGRpbmcgY2FuJ3QgYmUNCj4gZ3VhcmFudGVl
ZCB0byByZW1haW4gemVybyBvbiB0ZWFyZG93bi4NCg0KTWFrZSB0aGUgcGFkZGluZyBleHBsaWNp
dCB0aGVuLi4uIHRoYXQgc2hvdWxkIGF2b2lkIHRoZSBpc3N1ZSB3aXRob3V0IHJlbW92aW5nIHRo
ZSBjaGVjayAod2hpY2ggKmhhcyogY2F1Z2h0IGxlYWtzIGluIHRoZSBwYXN0KS4NCg0K


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 06 14:09:21 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jul 2026 14:09:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1355400.1610157 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgk0e-0005MF-EP; Mon, 06 Jul 2026 14:09:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1355400.1610157; Mon, 06 Jul 2026 14:09:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgk0e-0005M8-BZ; Mon, 06 Jul 2026 14:09:20 +0000
Received: by outflank-mailman (input) for mailman id 1355400;
 Mon, 06 Jul 2026 14:09:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f37c2fb7500080a8@swg.vates.tech>)
 id 1wgk0c-0005M2-TM
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 14:09:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wgk0a-002ucN-PB
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 16:09:17 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f37c2fb7500080a8@swg.vates.tech>)
 id 6a4bb702-5cb7-0a2a0a5109dd-0a2a4509c50e-18
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 16:09:16 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f37c2fb7500080a8@swg.vates.tech>)
 id 6a4bb70c-97e6-0a2a45090019-b9ff1c229993-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 16:09:16 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f37c2fb7500080a8.002 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 06 Jul 2026 14:09:13 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 5B70981CDE;
 Mon,  6 Jul 2026 16:09:12 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=hzauVuBRcbOBdfGZHBF4cnEdFIYhaHSVLCjZfO00u3w=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=t8rvnKT96LO+3XwlQACElAY0BH3x8qZEBMYxr0kZG2a7lgW8E+M75tT9I1ZYCUU4uAaQrSAuF
 l2721+EXalAtCaUyPiVChwHNBjPeyxb6ofsoKaptiAEznAWfSCQK9uBlUWTRoRH/LmyUzsi3ten
 j8iXLUlZMO3ZU+4uaYQttubwetUZgFLT2k2HMEieGaA7CunuesR9ABaRnV5CynSOfAO7NRev/pT
 5PxS4JxVeJz3SqmKT7AxMDTJa1R2fqBcmrdzjMNIiGiWckNYCZEhJwt7ZB6yiXYWNbMdf26w/yM
 OaOFsHssv75DEwCoLpSFi7PsDQBEoYCYsBu/V74cFAKQ==
X-Zone-Loop: 971f62143bb3a7ac658110c7f500e72f2d66d591bb15
x-campaign-type: default
x-transaction-id: 573c36a7-ac85-4272-83d7-ae2ff48fab17
x-swg-uid: 01-f477f405-f0e3-4ee8-bd81-a7d8a0381f1a
X-Mailer: Sweego
Message-ID:
 <1783346953.8631fc262581453bbf619ec5b2062170.19f37c2fb7500080a8@vates.tech>
x-swg-bid: 1783346953.8631fc262581453bbf619ec5b2062170.19f37c2fb7500080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 6 Jul 2026 16:09:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xenvif non-zero byte assertion error during teardown
To: "Durrant, Paul" <pdurrant@amazon.co.uk>,
 win-pv-devel <win-pv-devel@lists.xenproject.org>
References: <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
 <8A9FDC87-F94B-420F-A088-48DB4DEB47DD@amazon.co.uk>
 <1783329907.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@vates.tech>
 <26B03178-5010-48AE-8682-4FC442B0AAD6@amazon.co.uk>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <26B03178-5010-48AE-8682-4FC442B0AAD6@amazon.co.uk>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.2a3.53f1e7a5602794f6.19f37c2f8eb.686f6c5ea57a63e7=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783346952427
X-purgate-ID: tlsNG-bad1c0/1783346956-5579D986-A54074A2/0/0
X-purgate-type: clean
X-purgate-size: 2205

---=Part.2a3.53f1e7a5602794f6.19f37c2f8eb.686f6c5ea57a63e7=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 06/07/2026 11:32, Durrant, Paul wrote:
>>>
>>> What's wrong with zeroing the struct on allocation (which is what is s=
upposed to happen)?
>>>
>>
>>
>> Struct padding bytes have unspecified values and compilers are free to
>> emit code that overwrite them even if we don't access them directly=2E =
So
>> even if a structure was zeroed on initialization, its padding can't be
>> guaranteed to remain zero on teardown=2E
>=20
> Make the padding explicit then=2E=2E=2E that should avoid the issue with=
out removing the check (which *has* caught leaks in the past)=2E
>=20

Doing so is hard since padding is architecture-dependent, and gets=20
complex fast once child structures are involved=2E Some structures like=20
INTERFACE (part of DebugInterface/SuspendInterface/etc) have padding=20
that we can't simply eliminate or make explicit=2E

I've tried to check for padding correctness this way:

     #if DBG
     #define CONCAT2(a, b)   a##b
     #define CONCAT(a, b)    CONCAT2(a, b)

     #define PAD(n)          CHAR    CONCAT(_Pad_, __LINE__)[n]

     #define PAD_CHECK(name, T) \
         struct name T; \
         __pragma(pack(push, 1)) \
         struct _PACKED_##name T \
         __pragma(pack(pop)); \
         _STATIC_ASSERT(sizeof(struct name) =3D=3D \
             sizeof(struct _PACKED_##name))

     #else
     #define PAD(n)
     #define PAD_CHECK(name, T) \
         struct name T;
     #endif

     PAD_CHECK(_XENVIF_FRONTEND, {
         BOOLEAN                     Online;
         PAD(7);
         KSPIN_LOCK                  Lock;
         // =2E=2E=2E
     });

It works for trivial cases, but it breaks as soon as we encounter struct=
=20
INTERFACE=2E
In any case, the padding content of struct INTERFACE is not guaranteed=20
and we may run into the same problem with this struct=2E


-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.2a3.53f1e7a5602794f6.19f37c2f8eb.686f6c5ea57a63e7=---


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 06 14:20:01 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jul 2026 14:20:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1355403.1610160 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgkAy-0006YG-6G; Mon, 06 Jul 2026 14:20:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1355403.1610160; Mon, 06 Jul 2026 14:20:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgkAy-0006Y9-3T; Mon, 06 Jul 2026 14:20:00 +0000
Received: by outflank-mailman (input) for mailman id 1355403;
 Mon, 06 Jul 2026 14:19:59 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 1wgkAw-0006Y3-N5
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 14:19:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wgkAw-000IpP-3m
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 16:19:58 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 6a4bb972-e002-0a2a0a5209dd-0a2a450cd1e4-42
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 16:19:57 +0200
Received: from [18.156.205.64]
 (helo=fra-out-001.esa.eu-central-1.outbound.mail-perimeter.amazon.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <prvs=640a72d9f=pdurrant@amazon.co.uk>)
 id 6a4bb98d-f399-0a2a450c0019-129ccd408644-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 16:19:57 +0200
Received: from ip-10-6-3-216.eu-central-1.compute.internal (HELO
 smtpout.naws.eu-central-1.prod.farcaster.email.amazon.dev) ([10.6.3.216])
 by internal-fra-out-001.esa.eu-central-1.outbound.mail-perimeter.amazon.com
 with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2026 14:19:54 +0000
Received: from EX19MTAEUC001.ant.amazon.com [54.240.197.225:24858]
 by smtpin.naws.eu-central-1.prod.farcaster.email.amazon.dev [10.0.14.235:2525]
 with esmtp (Farcaster)
 id fd1ec997-46bd-46c2-b0bd-7d8ce0ed6af9; Mon, 6 Jul 2026 14:19:54 +0000 (UTC)
Received: from EX19EXOEUC002.ant.amazon.com (10.252.51.145) by
 EX19MTAEUC001.ant.amazon.com (10.252.51.193) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.43;
 Mon, 6 Jul 2026 14:19:54 +0000
Received: from EX19EXOEUB002.ant.amazon.com (10.252.51.83) by
 EX19EXOEUC002.ant.amazon.com (10.252.51.145) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.43;
 Mon, 6 Jul 2026 14:19:53 +0000
Received: from LO2P265CU024.outbound.protection.outlook.com (10.252.51.199) by
 EX19EXOEUB002.ant.amazon.com (10.252.51.83) with Microsoft SMTP
 Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.43
 via Frontend Transport; Mon, 6 Jul 2026 14:19:53 +0000
Received: from LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:483::9)
 by LO7P123MB7866.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:411::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.11; Mon, 6 Jul
 2026 14:19:49 +0000
Received: from LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
 ([fe80::aead:951a:bfd2:3d03]) by LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
 ([fe80::aead:951a:bfd2:3d03%7]) with mapi id 15.21.0181.010; Mon, 6 Jul 2026
 14:19:49 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=amazoncorp2 header.d=amazon.co.uk header.i="@amazon.co.uk" header.h="From:To:Date:Message-ID:References:In-Reply-To:Content-ID:Content-Transfer-Encoding:MIME-Version:Subject"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1783347597; x=1814883597;
  h=from:to:date:message-id:references:in-reply-to:
   content-id:content-transfer-encoding:mime-version:subject;
  bh=mfrpLrQF4bXvTworCQbJ1wDfTIPB7em0MAGEruNRahE=;
  b=D9hC2JE+Ur4Dfq3qUFdxZYzZvkoY24QMGhxSStUAxWEgmlVQ4uRv7k1V
   vEFwWDy0QN6GwVFjNR2QHZonCTy5I6xbbPuXQqgTJDtXbkooD4Tz6NAwR
   RE9jIl0DJKmuabxp9mZUVfySrD2t16PVvMTqsT033CkdT3JzQFP2tD4Hp
   usTGliaEib1KOSL0Kj4BjEEPmKtyTRoqsYNBbVtZGTd+yU825rv9T9VDw
   ANNwyhPspD6S5q62jwmn0+jIPVzl4ZTK9+IE7f+sx2PX9uonp/hU4NZU1
   q2lacesRGBc/FgLlnIlPpsksnKcJkKcbNBwoLVaW3quuCB/AbSXzkUO5q
   w==;
X-CSE-ConnectionGUID: 0aSTWCuqTWaDUtZRROk81A==
X-CSE-MsgGUID: XvxV3dW9Tc6YlFrpmdsmlw==
X-IronPort-AV: E=Sophos;i="6.25,149,1779148800"; 
   d="scan'208";a="15797950"
Subject: Re: Xenvif non-zero byte assertion error during teardown
Thread-Topic: Xenvif non-zero byte assertion error during teardown
X-Farcaster-Flow-ID: fd1ec997-46bd-46c2-b0bd-7d8ce0ed6af9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Sfg2LGMacGQ+9YYGjjGqm9onkYt4NlLLcX7hI3RMdbEZz+xpYmCfGWnHn0PFNViAW4SIDOwhj3Ine1LyXdDi2rSGNm6ynEGR7Gw6WetMrlxTEszA99LimLBGN1N4WL8GtuA5cFtBek3qGBMt4CVcu4JGxh6V7yYK43gLRPkiezn2TPq7zGVgENiXK6eOifwfQVLoHwJ6MopdZ8b7tLlq/NPpFiUOUfLyAi4vrS3AVvLraCX7bCQ5xxWNupaH5G2upEdBKOAbbeWYHVTilakvauQxV0Dw96XNwlEQBVDr2OcVpRbyKSYMOO3Soz8kX87BcQPC+titcUtswj37CqQ3qw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001; h=From:Date:Subject:Message-ID:MIME-Version;
 bh=mfrpLrQF4bXvTworCQbJ1wDfTIPB7em0MAGEruNRahE=;
 b=YYwYCMGN+LpF4Hb4uf83dELwsPZIxnKal3iZHK5pZ1Hn4hk/X8pnMG85lHUzznuK+kH96/9lh+3ygAL9Wo8JLD7vP4KsYyIWqcW+euWLK+M8K3yPu8Msu1/ACW5t45vtUxYz/t5AtdafhqwvwJTdrWXbOkp9lM08ZnRs/0UYfh6a4i2FUhEeR9g99Mt7PVgkGGCrjukChgInpxEAvBxOrO9b/hiDCy4DS641+/FhP1tDu6ruB9JbULi1UmBbA8cLpdAH1kDwtUZ81EXkGcHfiIo16Vj2E7O8IM4D2aIyhY+PV78wB7cEGBaFnIA+RrySx7SbmGVBJ+Gh5gF+w5t29A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amazon.co.uk; dmarc=pass action=none header.from=amazon.co.uk;
 dkim=pass header.d=amazon.co.uk; arc=none
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, win-pv-devel
	<win-pv-devel@lists.xenproject.org>
Thread-Index: AQHdCyKfsJpOQb/qzkKKIpiudCPyjLZgMtKAgAAJkgCAABLIgIAAPJgAgAATu4A=
Date: Mon, 6 Jul 2026 14:19:49 +0000
Message-ID: <2D2C1FCD-160F-4CC9-A320-15C2C742F51E@amazon.co.uk>
References: <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
 <8A9FDC87-F94B-420F-A088-48DB4DEB47DD@amazon.co.uk>
 <1783329907.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@vates.tech>
 <26B03178-5010-48AE-8682-4FC442B0AAD6@amazon.co.uk>
 <1783346953.8631fc262581453bbf619ec5b2062170.19f37c2fb7500080a8@vates.tech>
In-Reply-To: <1783346953.8631fc262581453bbf619ec5b2062170.19f37c2fb7500080a8@vates.tech>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Enabled=true;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_SetDate=2026-07-06T14:17:16Z;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_ContentBits=0;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Enabled=true;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Tag=50,
 3, 0,
 1;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Name=Confidential;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_ActionId=8618246d-bdf7-4aaf-9fd4-80971e6c98ae;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_SiteId=5280104a-472d-4538-9ccf-1e1d0efe8b1b;MSIP_Label_19e68092-05df-4271-8e3e-b2a4c82ba797_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amazon.co.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LOBP123MB8876:EE_|LO7P123MB7866:EE_
x-ms-office365-filtering-correlation-id: ba86c474-5add-4e73-b660-08dedb69a3a2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|23010399003|38070700021|22082099003|11063799006|4143699003|5023799004|56012099006|18002099003;
x-microsoft-antispam-message-info: WUp3RKurs2TcSSalMVVycfqmeTlUf7hGSh71XCC1ZpKlGGvjW9XWLTTQItXTE8EIDvBb5yxCXh2S4ZEpfJ/TLgDgbU+tLXsVgRe1tIoLuibOBb1rjCDkOA6ah+CcaDql6WQR9RyTiNm8xwoH243/jmKH1NjHc6UFOKS5fyfgA6MEH/6LpfZwrO9zp4eEtr3psddjJzVqZlRn+fAvHSBQCL1qAHYvMWE+uW5LIbAX99QPzpHa/9Z/awTE0Xt8oARWUD8ap13Wx1efJP4IrjrJTb/vi9tLcO0fv0EDSn+flzMWKKx5hnFKdCyukkJoQ6XGHdLzw4PO1pvKOfVmgbjFubIbeyhhp+cjh1ZyCTO6kw5owJXayyA3Weot8AW6z67fyhSfsO4KzKQKfLXS1c1CYstClG+EPE+Xp2rySxTfTaOoQLaCAKzsDQVO8Pu3MiBZGun+5ggsC1YGqxULaUcKrWGRr7L+SYadlJb8A5IPMqe0wdNy/azbWgB/oMz3nk8l8QYR/Beoe53tiCBqelJXCC2gEKqCDevR0JzRG5JTDN3VO8TnFP8ZuLwCFCDZ1fAnoYsBiKjdoWW+AUeLxRLlT2tDWRzZcEZc5kYtvuHGWKJ+Z6R82Qx2R2ReB6fmaOjhl8Rw/pQjDR95eNlXwS8wrkaNmvJVdbsR6yT+NH6naveLSCjpGKZWWJlT3V1K8T8JmhKohJkNJWxW8vFghbs0Mg==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(23010399003)(38070700021)(22082099003)(11063799006)(4143699003)(5023799004)(56012099006)(18002099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WjNBZ1duNXZPSHFFQjhnQ3M4Vy9SaVQ0QndJaUVtZVlocThtVlpzMVM3MjZr?=
 =?utf-8?B?TVBJck52ZjNvTS9RbWU3MkJUeEQzR082MmlVYlFHTkpoa2cvMW90OUNCcjJE?=
 =?utf-8?B?UlJzekVzMEZPTFBXWEVzTkliSExnTFVMeTc3YnlNSmVhOGk4YUxzcmpIeHhR?=
 =?utf-8?B?YWNjTzhoRndxbFZHN1hvN0ZTMG9XSStiOENUbUlmYks2SHk0NjVUWFBkWTdv?=
 =?utf-8?B?WWQxTUp6MWlab3dNZU1aQjNpeUtPMmcxS3pxcU9FWS8wRmFTWFQxYlNkZlNj?=
 =?utf-8?B?ekdTc1pKODdjV0pXa09tUHVuajMyNHd3Vk95Ukk4YVNKTnIxNERDWDhTbTdi?=
 =?utf-8?B?dEIwcFRvRXdJV1ZYYnE3T05OV3ZDWXF6T0hid3ZGdHBZM05lcC8rcTVLNVhK?=
 =?utf-8?B?WWhmMHA1eXRaZ3RSWk90ajJVTDg5cXZBMzdnbE1ybGNTbytuYXRhRDRHT2Fz?=
 =?utf-8?B?YmU3TVd5V3ZQY041bFh3cm5nMUJ1UnRNY04rS2dEdzZ2Q3J3VWIrd1B0ajda?=
 =?utf-8?B?V24wL3cxQWJUSTIzaVJONUo0WXZaVUExRUUwNTl5b2p6RGxrMW1CZEhoR1B4?=
 =?utf-8?B?L2ZiaEI1SzE1VENTdFdIQ3k1bGM1ZUpJdTV2QitsS0FjMmk3dm95c0U3ME1w?=
 =?utf-8?B?LzRwNW4wditGdlVGeXZzU21xQTJzbzg4OWhpVEgwenJ1UXorMUdXREpabmtH?=
 =?utf-8?B?RktoTVViV0dsVU9iN2dHNVJmQ1FicndLUGtlaWdjM3psYW1wMjFOT2s5Ulpo?=
 =?utf-8?B?SFk0eitaWHI4OWx4ZUh6dHNCWVBKd2R6bHpUZksvakhtSHcrTGMrTUw5ZUsx?=
 =?utf-8?B?SGZWbHJnMUl1RU9wdCtCMGFxMXBNQXI1NmZxS2ZQcDVpdWwxRmpXVVdUNUFn?=
 =?utf-8?B?a25JYTdvVnd1RHpLK1BqRnpjK0Izb2FMR29Da0dJQ0JpSHJlMlY5MTQ0WHlt?=
 =?utf-8?B?eURJT3ArZ3J1Ukcwby9aOFN2TlJ2M3M2QWxYK05WdTZ3V2ErVDZMeFRsQW9M?=
 =?utf-8?B?Ylo5bnNhY1FQdFNSOGd0YUNqcFZIME43dFVwQ0Fxa1VXdmc2c0lGWnlETi9a?=
 =?utf-8?B?cHg3MU50cTdGVk45Um5oSGI5bDNXVXVJR2tvZWlEL0VCbXB5SGkzSDFiT3VS?=
 =?utf-8?B?dXpTMG5GU3B1V2phc09sVHBOT3NPWVJEVXpkZmJGM2p0bU0wNmdPQWd1N3BS?=
 =?utf-8?B?dmJEcWlFUFhnUmMzelJITUZLSXdmNEdMS25QcTNjRXNta2c0dFlueUdVaDR4?=
 =?utf-8?B?L0hTOE4xNW9vKzhFYjYrMDZNUW1qYm1EQUZzNHhBVit3OVhNU0VUaUpUZGF0?=
 =?utf-8?B?WklnNjFZVkIvQzZRUmJjdU1nM1EyaXE2amV4VlpLVnVncnUxTlpLSk5oekho?=
 =?utf-8?B?eWlyM1lXQ3U5ZHpDQlFPRDBpTmtIa0MxN0VGT3JXUFB4QzI3WUl1dXJxaWk0?=
 =?utf-8?B?ZzZTRlcyTmVzb3hveUZ5SXJQYURPNlQ5cHR1b085Q3ZQSWNseFZCT2RJSldp?=
 =?utf-8?B?Nmw1cDlFUFVHVy84NC9wMlQzcFRFNWZGTDFhMmo5YVYyNERwLzc2YTc3NEJR?=
 =?utf-8?B?SkorSVdIajM4VWdNWTlhZ3FKWTZwZDRzVy9DdzVWMGdiN3lwa2JIRjNJa294?=
 =?utf-8?B?UGhDWjE0Qm92bFlmYjd0R1lMVTVia0QvZXBSRnFnUGkxUmh4MTJFRHFXQTBp?=
 =?utf-8?B?VXFMTHI2WkM5aDlXdVB5ZktRRWJKU3EwQXlFM3doTzZia2ZqZ3hqMVNiS2dL?=
 =?utf-8?B?UTBxV0tQZitmSTNmOXRrbkJJYUtWSURMZjZ6WUNSd0grR3hDdnMyaDk2b09U?=
 =?utf-8?B?ME5sTGhrVE9IZUEwczZhbWcwb0oyaEdVNkZNQUVuQ2ZXQUZmc1gwSERpc2ZC?=
 =?utf-8?B?MlZOeE9xV2o0Vkx4ZFJIUlM2UDRiWld2NXRsamlQa2VKWkFjTUFCLy9sejFh?=
 =?utf-8?B?ZU9zN09oa09FaEdSQWl4Nm9mbkYzc21kZGdYNWNGS0JEU3Mrczh0UnhSK1lH?=
 =?utf-8?B?Q0wza09nZGkvMHdsd0ZiU1NMTVYyaDlDYTJWR2F2YmJPS3dxcHp6aGVza3dH?=
 =?utf-8?B?bHhBclEyODFoSk9kbVFaSWdZNnA0SHJ2WmtRb3RmcmdrQSszQjVVc2M2ampC?=
 =?utf-8?B?Y2NmVjVteFJZOUcyWCtLU2hteHVSVXp5RzE3Y2dhd0tQZnRZZHB2NGxPRGxB?=
 =?utf-8?B?dW92dklMWWFVa2Y5d0RnTjF2YkRLS0gzWVludXZPMHg3T2hTdDhRb0h6TVVw?=
 =?utf-8?B?YkRUUnJXaFNpNVJiSC8zSXhOOHRhT3NuYnYvd0V5cnM1anN2Mno4MGlpMloz?=
 =?utf-8?B?Ti9xeTVtdDFZZzJNZFpxMUJlc2FPWW10YVZqWXN1akJ4VHQwMGkwZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0EC4DF1E42C3F54A85A0D0FA41D14F1B@GBRP123.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked: i++pXkPaTfJkMU3EBRoVSl0pAu+2TGFZETmeVp9kEeal9zrLw0wvV7b1TX1rHkU+K2vj55E1/FgnxlQK/4+puE5ViOEzncpdKdfXY93sNVSSirewjdkurUlvU+Ht4B9UXmA4hjh5OgbbCN5aApNAp36Ip+gg5Ck7UUb/mLZzUGKppwt2vaWHuCHTRWzrUNB/8OSLptOAGN03SWxIIdqMTF/+to8xzPl1pnadQWORaPjqnMo4+Dop3704lhbtE2iMPGANkMw0Qekei1OTtkpN8Xg9P0u5vkiwck4PO9f9380McSad/aXRsMnG2v70NlnqUnDHIC6AfOHHjco93VDNKg==
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LOBP123MB8876.GBRP123.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: ba86c474-5add-4e73-b660-08dedb69a3a2
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2026 14:19:49.6057
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ph/cJvBj4HGsBtzefSb6BM1VSHDcNTF3ndvXMu5lx0CO+ssT4qdUrGjtiw6qm8VlMASd8hxi73X1i8FBrMQG0Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO7P123MB7866
X-OriginatorOrg: amazon.co.uk
X-purgate-ID: tlsNG-d25034/1783347597-91D22D51-A89F26BD/21/137
X-purgate-type: clean
X-purgate-size: 620

PiBEb2luZyBzbyBpcyBoYXJkIHNpbmNlIHBhZGRpbmcgaXMgYXJjaGl0ZWN0dXJlLWRlcGVuZGVu
dCwgYW5kIGdldHMNCj4gY29tcGxleCBmYXN0IG9uY2UgY2hpbGQgc3RydWN0dXJlcyBhcmUgaW52
b2x2ZWQuIFNvbWUgc3RydWN0dXJlcyBsaWtlDQo+IElOVEVSRkFDRSAocGFydCBvZiBEZWJ1Z0lu
dGVyZmFjZS9TdXNwZW5kSW50ZXJmYWNlL2V0YykgaGF2ZSBwYWRkaW5nDQo+IHRoYXQgd2UgY2Fu
J3Qgc2ltcGx5IGVsaW1pbmF0ZSBvciBtYWtlIGV4cGxpY2l0Lg0KDQpPaywgeWVzLCBJIGNhbiBz
ZWUgdGhvc2Ugd291bGQgYmUgaGFyZC4NCg0KSSdtIGN1cmlvdXMgYXMgdG8gd2h5IHRoaXMgcGFk
ZGluZyBpcyBzdWRkZW5seSBhIHByb2JsZW0gYWZ0ZXIgYSBkZWNhZGUgd2l0aG91dCBhbnkgaXNz
dWVzIHRob3VnaC4gSXMgaXQgYW4gaXNzdWUgd2l0aCBhIG5ld2VyIHRvb2xjaGFpbj8NCg0K


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 06 14:23:38 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jul 2026 14:23:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1355408.1610176 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgkEU-0007hr-I4; Mon, 06 Jul 2026 14:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1355408.1610176; Mon, 06 Jul 2026 14:23:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wgkEU-0007hk-FY; Mon, 06 Jul 2026 14:23:38 +0000
Received: by outflank-mailman (input) for mailman id 1355408;
 Mon, 06 Jul 2026 14:23:36 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f37d0106300080a8@swg.vates.tech>)
 id 1wgkES-0007he-UJ
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 14:23:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wgkER-002Xmz-LO
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jul 2026 16:23:35 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f37d0106300080a8@swg.vates.tech>)
 id 6a4bba50-bab6-0a2a0a5309dd-0a2a450a90fc-30
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 16:23:35 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f37d0106300080a8@swg.vates.tech>)
 id 6a4bba67-e40e-0a2a450a0019-b9ff1c238b43-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jul 2026 16:23:35 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f37d0106300080a8.002 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 06 Jul 2026 14:23:30 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id BF2B381D00;
 Mon,  6 Jul 2026 16:23:29 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=ZvZYGj252PCqpAKJR4InruElpOSHOO4XNDSzWS/cSb8=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=j1mOmd0+2ICm+z/7j3Evxua2/4jaY8rtY6g6AuIc6L9XZWWOR1tKkiK7J5nYKcJsjsBhL37RA
 UNfPRtx5WD/O0zKxEIZktHZ9lY2lXmW9iAXhBOfyzRcqktSizqNOeJnoDAaqNyzPUvE+sd32YbU
 b80gGOHT3QxMdXGiH22geoUl6qxnKvYSG1jjkhiPeT1p3hwemXNQNU+yutLQAfYXR1f3amzUU5R
 jKUhJnBrNupcJLJFfv1fJS3kQTG/fD+8M3spiTfRnzENwqXu9/KbcI6aiTe0lSh4knLTiZfUksU
 8i1zDOTbtZtm4iCKvpNYeTH6Vm7DO5rmI76dtFi/i4bg==
X-Zone-Loop: 675a2d60528623ddab3b9e4c5c7f9a25c80fc41461cb
x-campaign-type: default
x-transaction-id: af95febe-9355-4bc1-91d1-eae999ae21eb
x-swg-uid: 01-e14a6133-f22e-4be1-8087-58eff6ae4707
X-Mailer: Sweego
Message-ID:
 <1783347810.8631fc262581453bbf619ec5b2062170.19f37d0106300080a8@vates.tech>
x-swg-bid: 1783347810.8631fc262581453bbf619ec5b2062170.19f37d0106300080a8
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 6 Jul 2026 16:23:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xenvif non-zero byte assertion error during teardown
To: "Durrant, Paul" <pdurrant@amazon.co.uk>,
 win-pv-devel <win-pv-devel@lists.xenproject.org>
References: <1783107049.8631fc262581453bbf619ec5b2062170.19f2976569000080a8@vates.tech>
 <8A9FDC87-F94B-420F-A088-48DB4DEB47DD@amazon.co.uk>
 <1783329907.8631fc262581453bbf619ec5b2062170.19f36bee41d00080a8@vates.tech>
 <26B03178-5010-48AE-8682-4FC442B0AAD6@amazon.co.uk>
 <1783346953.8631fc262581453bbf619ec5b2062170.19f37c2fb7500080a8@vates.tech>
 <2D2C1FCD-160F-4CC9-A320-15C2C742F51E@amazon.co.uk>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <2D2C1FCD-160F-4CC9-A320-15C2C742F51E@amazon.co.uk>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.2af.7f28e11df5acf7cb.19f37d00e38.bcb5e903fe87ccd2=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783347809849
X-purgate-ID: tlsNG-4011c0/1783347815-D6121DDE-B6E31158/0/0
X-purgate-type: clean
X-purgate-size: 1024

---=Part.2af.7f28e11df5acf7cb.19f37d00e38.bcb5e903fe87ccd2=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 06/07/2026 16:20, Durrant, Paul wrote:
>> Doing so is hard since padding is architecture-dependent, and gets
>> complex fast once child structures are involved=2E Some structures like
>> INTERFACE (part of DebugInterface/SuspendInterface/etc) have padding
>> that we can't simply eliminate or make explicit=2E
>=20
> Ok, yes, I can see those would be hard=2E
>=20
> I'm curious as to why this padding is suddenly a problem after a decade =
without any issues though=2E Is it an issue with a newer toolchain?
>=20

I did recently switch to VS2026 so that might be a reason=2E Or that it=20
was rare enough to not be detected during typical runs of the debug build=
=2E


-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.2af.7f28e11df5acf7cb.19f37d00e38.bcb5e903fe87ccd2=---


From win-pv-devel-bounces@lists.xenproject.org Sat Jul 11 11:51:32 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 11 Jul 2026 11:51:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1360216.1613279 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWEz-000272-Rp; Sat, 11 Jul 2026 11:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1360216.1613279; Sat, 11 Jul 2026 11:51:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWEz-00026u-Ot; Sat, 11 Jul 2026 11:51:29 +0000
Received: by outflank-mailman (input) for mailman id 1360216;
 Sat, 11 Jul 2026 11:51:28 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@swg.vates.tech>)
 id 1wiWEy-00026o-80
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 11:51:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wiWEx-0038AO-LG
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 13:51:27 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@swg.vates.tech>)
 id 6a522e26-2eae-0a2a0a5409dd-0a2a4507db48-8
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:51:27 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@swg.vates.tech>)
 id 6a522e3e-ac46-0a2a45070019-b9ff1c23a4a5-3
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:51:27 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f51049246000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Sat, 11 Jul 2026 11:51:21 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 25BC88108D;
 Sat, 11 Jul 2026 13:51:21 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=3g6yhopp2CgKUZ4Cwvztf3l0KkYarEzYsxPHlRxbFSs=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=bzAHtzPnibPlkD+/R7w0WPd/4Y4oCsfs7iNPgczLv31c2Af0RUoTn6oVbFWugTGxT1c/j3URB
 dRU4QdpfnG4KdX35Lqo6dmNbSPB3TpLM1bsEsiTBJkNbxqz0hmgUHbQXNfBK3AeF1/tsvWd9gpT
 OmPBetgfA+EhUkxSYti42+ZD9hCzP1QbC3SVujP5euk+m5YGOSlWt6vb8spMzVL0WNJOEbnKisc
 P91D9SDn03zlZpUYu+b6pv+mtOhKqI1TTCebW7S4EE1LX0wVqARFmK9MgFqid2CyEsEC+eoLYTD
 uoOjEn7wWrUbmXEtPpJM2SJ8zCmSVWBFdMoIjf0BcT7Q==
X-Zone-Loop: f33e34fe622716094a9d10d77cef6be9fc62586eae70
x-campaign-type: default
x-transaction-id: 03dc6c56-de67-4c04-8978-48e62679bcda
x-swg-uid: 01-edd2921c-d3c6-4c78-bef4-00c6cf2ae5db
X-Mailer: Sweego
Message-ID:
 <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
x-swg-bid: 1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH 0/3] XenVif receive backpressure adjustments
Date: Sat, 11 Jul 2026 13:51:17 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.65f.829f6db81e7c791.19f51048f7d.5d7748b600362e10=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783770681213
X-purgate-ID: tlsNG-ef75cf/1783770687-D8C31201-796F7693/0/0
X-purgate-type: clean
X-purgate-size: 2331

---=Part.65f.829f6db81e7c791.19f51048f7d.5d7748b600362e10=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

To be accompanied with the Xenbus patch for suppressing quota-related
error messages in CacheCreateSlab=2E

Currently, traffic floods can cause anything from system lockups to
resource exhaustion (OOM) due to insufficient backpressure=2E The causes
are uncontrolled packet cache allocation, uncontrolled restarts and
queue DPC cascades=2E

An easy reproducer is to start a UDP flood from a Linux VM:

    #!/bin/sh

    set -e

    IFACE=3D"enX0"  # replace with real VM's iface name
    SRC_MAC=3D"02:00:00:00:00:01"
    DST_MAC=3D"02:00:00:00:00:02"  # replace with real victim VIF's MAC
    DST_IP=3D"192=2E0=2E2=2E1"  # replace with real victim VIF's IP
    UDP_PORT=3D"9"

    modprobe pktgen
    PG=3D/proc/net/pktgen

    echo rem_device_all > "$PG/kpktgend_0"
    echo "add_device $IFACE" > "$PG/kpktgend_0"
    echo clone_skb 1000 > "$PG/$IFACE"
    echo pkt_size 60 > "$PG/$IFACE"
    echo count 0 > "$PG/$IFACE"
    echo delay 0 > "$PG/$IFACE"
    echo "dst_mac $DST_MAC" > "$PG/$IFACE"
    echo "src_mac $SRC_MAC" > "$PG/$IFACE"
    echo "dst $DST_IP" > "$PG/$IFACE"
    echo "dst_min $DST_IP" > "$PG/$IFACE"
    echo "dst_max $DST_IP" > "$PG/$IFACE"
    echo "udp_dst_min $UDP_PORT" > "$PG/$IFACE"
    echo "udp_dst_max $UDP_PORT" > "$PG/$IFACE"

    echo start > "$PG/pgctrl"

To stop:

    echo stop > /proc/net/pktgen/pgctrl

The following patches attempt to address this problem by adding
backpressure at key exhaustion-prone locations (packet cache size, ring
restart behavior, ring unpause behavior)=2E With these patches, the victim
VM's system and networking remain responsive throughout the flood=2E

Tu Dinh (3):
  Cap the size of the receiver PacketCache
  Conditionally restart the RX ring from packet return
  Avoid requeuing QueueDpc during ring swizzles

 src/xenvif/receiver=2Ec | 113 +++++++++++++++++++++++-------------------
 1 file changed, 63 insertions(+), 50 deletions(-)

--
2=2E54=2E0=2Ewindows=2E1


-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.65f.829f6db81e7c791.19f51048f7d.5d7748b600362e10=---


From win-pv-devel-bounces@lists.xenproject.org Sat Jul 11 11:52:49 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 11 Jul 2026 11:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1360218.1613283 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWGG-0002CH-Vb; Sat, 11 Jul 2026 11:52:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1360218.1613283; Sat, 11 Jul 2026 11:52:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWGG-0002CA-T0; Sat, 11 Jul 2026 11:52:48 +0000
Received: by outflank-mailman (input) for mailman id 1360218;
 Sat, 11 Jul 2026 11:52:48 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105cd37000edb5@swg.vates.tech>)
 id 1wiWGG-0002Bu-3s
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 11:52:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wiWGF-008rFn-A3
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 13:52:47 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105cd37000edb5@swg.vates.tech>)
 id 6a522e38-e002-0a2a0a5209dd-0a2a450c8744-36
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:52:47 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105cd37000edb5@swg.vates.tech>)
 id 6a522e8e-e897-0a2a450c0019-b9ff1c238bb1-3
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:52:47 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f5105cd37000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Sat, 11 Jul 2026 11:52:42 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 0F02080C5A;
 Sat, 11 Jul 2026 13:52:42 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=SaE+RlkNQZB9mqwjJIIgY9f39E8PfYqwfIm83rP6/5k=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=G0cbFxm2KzRnmVUZJ9xFSLefzpuijY73SX2d72JTaqa+Jv9md1G8IayOAh+EFGdazXB2bKlDM
 n88XrMwtun0GbnSwPZIXaIXa2FjAXm40YUqyDEqiaLY8EpPYsyT0lTbs/65BZ7WPs0fha0EDH6H
 n4AAn+SyYozx0UAnSLSaSeNcoMHd4GlZM+ezKaG7UwdcOYTxfJY6CTYTDjizIUSuQxF17lDwtGS
 MLMwxnCYW1Y09J0CQ2zrZ7qq4jG8NUx78/Sbue0XAp84domxvAziBKFd76LnKSrgy4RNhNjjnuq
 Tx17KI0Pr3AC1Sw1oV0IxzjAyrE0NugJJah53+3UJhqQ==
X-Zone-Loop: 1388ce9c11fc9241089b937b1e79dbd128285a65ca6d
x-campaign-type: default
x-transaction-id: b4daa551-bd15-4524-b9d3-1985479b457e
x-swg-uid: 01-b7d5203f-881a-4e5d-97d8-757f55625c66
X-Mailer: Sweego
Message-ID:
 <1783770762.8631fc262581453bbf619ec5b2062170.19f5105cd37000edb5@vates.tech>
x-swg-bid: 1783770762.8631fc262581453bbf619ec5b2062170.19f5105cd37000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH 3/3] Avoid requeuing QueueDpc during ring swizzles
Date: Sat, 11 Jul 2026 13:52:35 +0200
In-Reply-To: <20260711115237.255-1-ngoc-tu.dinh@vates.tech>
References: <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
 <20260711115237.255-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.662.fd220fff5d76179b.19f5105cb84.95a4b3ebd1f0d58=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783770762116
X-purgate-ID: tlsNG-d25034/1783770767-57F636B2-1063DA43/0/0
X-purgate-type: clean
X-purgate-size: 1872

---=Part.662.fd220fff5d76179b.19f5105cb84.95a4b3ebd1f0d58=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

If a ring is paused by xennet, __ReceiverRingSwizzle immediately queues
another QueueDpc=2E In low-resource conditions where NDIS is unable to
process traffic, this will cause an infinite cascade of DPCs and lock up
the system=2E

Stop doing that in __ReceiverRingSwizzle=2E Instead, requeue QueueDpc from
ReceiverReturnPacket after incrementing Receiver->Returned to reevaluate
the paused status=2E This ensures that incoming traffic storms can be
safely handled=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/receiver=2Ec | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
index 29bd325=2E=2E95a4f5c 100644
--- a/src/xenvif/receiver=2Ec
+++ b/src/xenvif/receiver=2Ec
@@ -1560,11 +1560,12 @@ __ReceiverRingSwizzle(
             Pause =3D FALSE;
     }
=20
+    // If there will be no more returns then we can't pause either
+    if (Pause && Receiver->Loaned =3D=3D Receiver->Returned)
+        Pause =3D FALSE;
+
     if (Pause) {
         Ring->Paused =3D TRUE;
-
-        if (KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL))
-            Ring->QueueDpcs++;
     } else {
         BOOLEAN Paused =3D Ring->Paused;
=20
@@ -3796,6 +3797,9 @@ ReceiverReturnPacket(
=20
     ASSERT3S(Loaned - Returned, >=3D, 0);
=20
+    if (KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL))
+        Ring->QueueDpcs++;
+
     KeSetEvent(&Receiver->Event, 0, FALSE);
 }
=20
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.662.fd220fff5d76179b.19f5105cb84.95a4b3ebd1f0d58=---


From win-pv-devel-bounces@lists.xenproject.org Sat Jul 11 11:52:50 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 11 Jul 2026 11:52:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1360219.1613286 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWGI-0002Di-1n; Sat, 11 Jul 2026 11:52:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1360219.1613286; Sat, 11 Jul 2026 11:52:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWGH-0002Da-Uf; Sat, 11 Jul 2026 11:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1360219;
 Sat, 11 Jul 2026 11:52:48 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105c9d6000edb5@swg.vates.tech>)
 id 1wiWGG-0002Bt-2j
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 11:52:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wiWGF-008rFn-8y
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 13:52:47 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105c9d6000edb5@swg.vates.tech>)
 id 6a522e38-e002-0a2a0a5209dd-0a2a450c8744-34
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:52:47 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105c9d6000edb5@swg.vates.tech>)
 id 6a522e8e-e897-0a2a450c0019-b9ff1c23aed9-3
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:52:47 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f5105c9d6000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Sat, 11 Jul 2026 11:52:41 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 302C980C5A;
 Sat, 11 Jul 2026 13:52:41 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=e6+AclTawqJGm5hNvu+8+CDFg7HocgUDGq+zKl2u3y8=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=N23BnwJta7QowdwcgvKK3l9P/o2rwpVI6rKvv8t3Q2yiBXS4NOr+JwMAlNcU1yrJ5LFgiL3R1
 GXsiS9YGqh6NItIdH94hmvIM6B9J0OkbfeNqouEzlXxTy5USSLApTRWeCOD3jJSDjPwNcwn+U/e
 xv4OqE+BDoZmzVL4mfYo2nivPhz8doaFu03ko2+39FoGdEHw5wSRk3guJQO+NjBm4tP3Epibbuf
 MlaxyrgeB1bAnGB7otSvb22xNYwGI/4Mf3qLV/KNOpGO8l9wbXlFlw9TLasQRaUwZ7TaJUudGWJ
 O7txYzMHiFMvE0VwXLEqv1/3Wxko0Gkr7D57f0KJuyRg==
X-Zone-Loop: d26b05b89941282c7f00aed7f8a108b496d2c343c05a
x-campaign-type: default
x-transaction-id: ac5637f5-1410-44c3-8210-f8e3206d89eb
x-swg-uid: 01-e0c60e83-f48d-48ee-af39-548d440d5e61
X-Mailer: Sweego
Message-ID:
 <1783770761.8631fc262581453bbf619ec5b2062170.19f5105c9d6000edb5@vates.tech>
x-swg-bid: 1783770761.8631fc262581453bbf619ec5b2062170.19f5105c9d6000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH 2/3] Conditionally restart the RX ring from packet return
Date: Sat, 11 Jul 2026 13:52:34 +0200
In-Reply-To: <20260711115237.255-1-ngoc-tu.dinh@vates.tech>
References: <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
 <20260711115237.255-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.661.bbeea4f5d8f615d7.19f5105c824.741e187484d52c52=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783770761252
X-purgate-ID: tlsNG-d25034/1783770767-57B656B2-12DB9F4D/0/0
X-purgate-type: clean
X-purgate-size: 5003

---=Part.661.bbeea4f5d8f615d7.19f5105c824.741e187484d52c52=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Currently, the RX ring is restarted on packet return regardless of
whether there are sufficient resources to afford it=2E In cases where the
packet cache has been exhausted, restarting the RX ring will be
counterproductive=2E

Make ReceiverRingFill return STATUS_SUCCESS only if the RX ring has
been filled without errors=2E Base the decision of restarting the RX ring
from __ReceiverRingReturnPacket on this return status=2E

Move __ReceiverRingReturnPacket below ReceiverRingFill as the former now
makes use of the latter=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/receiver=2Ec | 95 +++++++++++++++++++++++--------------------
 1 file changed, 51 insertions(+), 44 deletions(-)

diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
index 359935c=2E=2E29bd325 100644
--- a/src/xenvif/receiver=2Ec
+++ b/src/xenvif/receiver=2Ec
@@ -1709,49 +1709,6 @@ __ReceiverRingSend(
         __ReceiverRingReleaseLock(Ring);
 }
=20
-_IRQL_requires_(DISPATCH_LEVEL)
-static FORCEINLINE VOID
-__ReceiverRingReturnPacket(
-    IN  PXENVIF_RECEIVER_RING   Ring,
-    IN  PXENVIF_RECEIVER_PACKET Packet,
-    IN  BOOLEAN                 Locked
-    )
-{
-    PMDL                        Mdl;
-
-    Mdl =3D &Packet->Mdl;
-
-    while (Mdl !=3D NULL) {
-        PMDL    Next;
-
-        Next =3D Mdl->Next;
-        Mdl->Next =3D NULL;
-
-        __ReceiverRingPutMdl(Ring, Mdl, Locked);
-
-        Mdl =3D Next;
-    }
-
-    if (__ReceiverRingIsStopped(Ring)) {
-        KIRQL   Irql;
-
-        KeRaiseIrql(DISPATCH_LEVEL, &Irql);
-
-        if (!Locked)
-            __ReceiverRingAcquireLock(Ring);
-
-        if (__ReceiverRingIsStopped(Ring)) {
-            __ReceiverRingStart(Ring);
-            __ReceiverRingTrigger(Ring, TRUE);
-        }
-
-        if (!Locked)
-            __ReceiverRingReleaseLock(Ring);
-
-        KeLowerIrql(Irql);
-    }
-}
-
 static FORCEINLINE PXENVIF_RECEIVER_FRAGMENT
 __ReceiverRingPreparePacket(
     IN  PXENVIF_RECEIVER_RING   Ring,
@@ -1828,7 +1785,7 @@ __ReceiverRingPushRequests(
     Ring->RequestsPushed =3D Ring->RequestsPosted;
 }
=20
-static VOID
+static NTSTATUS
 ReceiverRingFill(
     IN  PXENVIF_RECEIVER_RING   Ring
     )
@@ -1837,6 +1794,7 @@ ReceiverRingFill(
     PXENVIF_FRONTEND            Frontend;
     RING_IDX                    req_prod;
     RING_IDX                    rsp_cons;
+    NTSTATUS                    status;
=20
     Receiver =3D Ring->Receiver;
     Frontend =3D Receiver->Frontend;
@@ -1848,6 +1806,7 @@ ReceiverRingFill(
=20
     KeMemoryBarrier();
=20
+    status =3D STATUS_SUCCESS;
     while (req_prod - rsp_cons < RING_SIZE(&Ring->Front)) {
         PXENVIF_RECEIVER_PACKET     Packet;
         PXENVIF_RECEIVER_FRAGMENT   Fragment;
@@ -1857,6 +1816,7 @@ ReceiverRingFill(
         Packet =3D __ReceiverRingGetPacket(Ring, TRUE);
=20
         if (Packet =3D=3D NULL) {
+            status =3D STATUS_INSUFFICIENT_RESOURCES;
             __ReceiverRingStop(Ring);
             break;
         }
@@ -1864,6 +1824,7 @@ ReceiverRingFill(
         Fragment =3D __ReceiverRingPreparePacket(Ring, Packet);
        =20
         if (Fragment =3D=3D NULL) {
+            status =3D STATUS_INSUFFICIENT_RESOURCES;
             __ReceiverRingPutPacket(Ring, Packet, TRUE);
             break;
         }
@@ -1889,6 +1850,52 @@ ReceiverRingFill(
     Ring->Front=2Ereq_prod_pvt =3D req_prod;
=20
     __ReceiverRingPushRequests(Ring);
+
+    return status;
+}
+
+_IRQL_requires_(DISPATCH_LEVEL)
+static FORCEINLINE VOID
+__ReceiverRingReturnPacket(
+    IN  PXENVIF_RECEIVER_RING   Ring,
+    IN  PXENVIF_RECEIVER_PACKET Packet,
+    IN  BOOLEAN                 Locked
+    )
+{
+    PMDL                        Mdl;
+
+    Mdl =3D &Packet->Mdl;
+
+    while (Mdl !=3D NULL) {
+        PMDL    Next;
+
+        Next =3D Mdl->Next;
+        Mdl->Next =3D NULL;
+
+        __ReceiverRingPutMdl(Ring, Mdl, Locked);
+
+        Mdl =3D Next;
+    }
+
+    if (__ReceiverRingIsStopped(Ring)) {
+        KIRQL   Irql;
+
+        KeRaiseIrql(DISPATCH_LEVEL, &Irql);
+
+        if (!Locked)
+            __ReceiverRingAcquireLock(Ring);
+
+        if (__ReceiverRingIsStopped(Ring) &&
+            NT_SUCCESS(ReceiverRingFill(Ring))) {
+            __ReceiverRingStart(Ring);
+            __ReceiverRingTrigger(Ring, TRUE);
+        }
+
+        if (!Locked)
+            __ReceiverRingReleaseLock(Ring);
+
+        KeLowerIrql(Irql);
+    }
 }
=20
 static FORCEINLINE VOID
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.661.bbeea4f5d8f615d7.19f5105c824.741e187484d52c52=---


From win-pv-devel-bounces@lists.xenproject.org Sat Jul 11 11:52:50 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 11 Jul 2026 11:52:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1360220.1613293 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWGI-0002E3-5d; Sat, 11 Jul 2026 11:52:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1360220.1613293; Sat, 11 Jul 2026 11:52:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWGH-0002Do-Vo; Sat, 11 Jul 2026 11:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1360220;
 Sat, 11 Jul 2026 11:52:48 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105c529000edb5@swg.vates.tech>)
 id 1wiWGG-0002Bs-9O
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 11:52:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wiWGA-0038Ii-8Z
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 13:52:42 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105c529000edb5@swg.vates.tech>)
 id 6a522e05-2eae-0a2a0a5409dd-0a2a4509d16c-42
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:52:42 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f5105c529000edb5@swg.vates.tech>)
 id 6a522e89-b440-0a2a45090019-b9ff1c12928b-3
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:52:42 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f5105c529000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Sat, 11 Jul 2026 11:52:40 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id BBA1D80C5A;
 Sat, 11 Jul 2026 13:52:39 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=WZ9JU9N4m6XYDHz7NDJmDT5f96vrt58jXpBBPd/j2vY=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=IBUDt9FnTR3E3KxiuFocC//RAR5lU2SLkxI1PQVV/HYZrRzfvVY4CMgCoww053idSNv3Ah6CR
 Sdo5DYLVpkvgQV7qftnpb5XwYYl5SGpkYiUv1wgBKJJOsGfEPtLcFlIqGqMvrsVFh8Age3ebl4R
 cMfKP4mXfsVe8kdxigmnvEZnzsSjWxWdaRtKIEk54D8Xiw0wlZFaRWbX51vQGzXzJx3CfkhUcc0
 ElfFvBwh1KAb9aojiahZyo0mBVnduR4Soc7nxWnUdiyEeAbDtu8r5pTi4kqUBI08M0LAjCRKHJC
 qgVp3N7MVDJ7c9ZHgaARGbKnt/q2/jCHoviNkN7riu7Q==
X-Zone-Loop: fc3c24ceed8298b940ef662c8e9b0c5234ad66b25145
x-campaign-type: default
x-transaction-id: c5a03ea2-9868-4d46-be42-940497672117
x-swg-uid: 01-d28aa660-0b18-441a-8bfe-b924065eb6ad
X-Mailer: Sweego
Message-ID:
 <1783770760.8631fc262581453bbf619ec5b2062170.19f5105c529000edb5@vates.tech>
x-swg-bid: 1783770760.8631fc262581453bbf619ec5b2062170.19f5105c529000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH 1/3] Cap the size of the receiver PacketCache
Date: Sat, 11 Jul 2026 13:52:33 +0200
In-Reply-To: <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
References: <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.660.9fb4c823a3b9401a.19f5105c291.c8e7b05811f20dce=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783770759825
X-purgate-ID: tlsNG-bad1c0/1783770762-5C77AA0B-71A6B32B/0/0
X-purgate-type: clean
X-purgate-size: 2668

---=Part.660.9fb4c823a3b9401a.19f5105c291.c8e7b05811f20dce=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

ReceiverRingFill is triggered every ring poll DPC, and continually
drains RX responses into the packet cache=2E While code exists to handle
cache allocation failures, the packet cache itself is uncapped; if NDIS
doesn't process the packets quickly enough, it will eventually cause the
packet cache to allocate infinitely and crash the machine=2E

Add a cap to the packet cache as a workaround=2E While this will not truly
fix OOM scenarios, nor does it solve lockups caused by excessive
incoming traffic, it will at least allow the VM to recover after a
traffic flood=2E

Set the cache cap to 8 times the ring size (2048) for 8 MB of packet
cache memory per queue=2E This value was chosen to be larger than
IN_NDIS_MAX + XENVIF_RECEIVER_RING_SIZE, and was derived from running a
single-stream TCP benchmark, observing a max object count of 836, then
doubling that and rounding up to a power of 2=2E

Suppress the allocation error message in ReceiverPacketCtor=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/receiver=2Ec | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
index 14e8d0b=2E=2E359935c 100644
--- a/src/xenvif/receiver=2Ec
+++ b/src/xenvif/receiver=2Ec
@@ -77,6 +77,8 @@ typedef struct _XENVIF_RECEIVER_HASH {
=20
 #define XENVIF_RECEIVER_MAXIMUM_FRAGMENT_ID (XENVIF_RECEIVER_RING_SIZE - =
1)
=20
+#define XENVIF_RECEIVER_PACKET_CACHE_CAP    (XENVIF_RECEIVER_RING_SIZE * =
8)
+
 typedef struct _XENVIF_RECEIVER_RING {
     PXENVIF_RECEIVER            Receiver;
     ULONG                       Index;
@@ -219,8 +221,6 @@ ReceiverPacketCtor(
     return STATUS_SUCCESS;
=20
 fail1:
-    Error("fail1 (%08x)\n", status);
-   =20
     ASSERT(IsZeroMemory(Packet, sizeof (XENVIF_RECEIVER_PACKET)));
=20
     return status;
@@ -2488,7 +2488,7 @@ __ReceiverRingInitialize(
                           Name,
                           sizeof (XENVIF_RECEIVER_PACKET),
                           0,
-                          0,
+                          XENVIF_RECEIVER_PACKET_CACHE_CAP,
                           ReceiverPacketCtor,
                           ReceiverPacketDtor,
                           ReceiverRingAcquireLock,
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.660.9fb4c823a3b9401a.19f5105c291.c8e7b05811f20dce=---


From win-pv-devel-bounces@lists.xenproject.org Sat Jul 11 11:52:59 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 11 Jul 2026 11:52:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1360221.1613295 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWGR-0002Ic-4J; Sat, 11 Jul 2026 11:52:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1360221.1613295; Sat, 11 Jul 2026 11:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiWGR-0002IU-15; Sat, 11 Jul 2026 11:52:59 +0000
Received: by outflank-mailman (input) for mailman id 1360221;
 Sat, 11 Jul 2026 11:52:57 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f510601c5000edb5@swg.vates.tech>)
 id 1wiWGP-0002ID-Tg
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 11:52:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wiWGP-0038P2-Aj
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 13:52:57 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f510601c5000edb5@swg.vates.tech>)
 id 6a522e05-2eae-0a2a0a5409dd-0a2a4509d16c-48
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:52:57 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f510601c5000edb5@swg.vates.tech>)
 id 6a522e98-b440-0a2a45090019-b9ff1c12a357-3
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 13:52:57 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f510601c5000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Sat, 11 Jul 2026 11:52:56 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 77CB7820CC;
 Sat, 11 Jul 2026 13:52:55 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=jNgBowxnStVZ5RkTdJt9ZQ1Z54y0IoKGb9iFnTMQW3Y=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=jfrC2RYzZj5K3v/fNlMSx6LVuJyxbc5DmagsmsCAuTgxrixJFwYdHxsRQ3s+RlBHE3pWbkLG+
 QMaCD4Kcd7mTJPBY/lHj5BCLpaEhH/u7R7jf6euqfpyBHV1lbVgnaB4Wrpa62na7idFis88pxUx
 jM82kWM1fNjxm2qaMuIdGmf72ECkIzBG1i/uzNNjYa/XMhxsYNXa7g2M4Si2jcRAB2TKVt3h40+
 1H9k5OFzNkD4AQgiVTmDpIid/0kBGuydlQ8QEMDo16GHsn9o1XgJ/4b8GvqwP5Clmmdyr+jX6WM
 9DgubBum/oBEQ0JCXPymw9BW09wm6MVrXuoPUcnKUyug==
X-Zone-Loop: 8ce7c7b8675f976f2fcf219c16e022e400fc5a3e8ee8
x-campaign-type: default
x-transaction-id: 527dad23-e2da-4725-a394-f5ecd44243aa
x-swg-uid: 01-4babfc78-1491-42a1-b477-6bbc23a32281
X-Mailer: Sweego
Message-ID:
 <1783770776.8631fc262581453bbf619ec5b2062170.19f510601c5000edb5@vates.tech>
x-swg-bid: 1783770776.8631fc262581453bbf619ec5b2062170.19f510601c5000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [XENBUS PATCH] Suppress quota error messages in CacheCreateSlab
Date: Sat, 11 Jul 2026 13:52:50 +0200
In-Reply-To: <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
References: <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.663.9bb080bb141f373b.19f51060020.1daeb3a80431c647=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783770775584
X-purgate-ID: tlsNG-bad1c0/1783770777-5DB70A0B-BAEE834D/0/0
X-purgate-type: clean
X-purgate-size: 1053

---=Part.663.9bb080bb141f373b.19f51060020.1daeb3a80431c647=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

CacheCreateSlab can hit quota errors during normal operation (e=2Eg=2E high
network traffic)=2E

Don't print the error message in this case to avoid flooding the logs=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenbus/cache=2Ec | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/xenbus/cache=2Ec b/src/xenbus/cache=2Ec
index e58e2f9=2E=2E46201b4 100644
--- a/src/xenbus/cache=2Ec
+++ b/src/xenbus/cache=2Ec
@@ -457,10 +457,9 @@ fail3:
     __CacheFree(Slab);
=20
 fail2:
-    Error("fail2\n");
+    Error("fail2 (%08x)\n", status);
=20
 fail1:
-    Error("fail1 (%08x)\n", status);
=20
     return status;
 }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.663.9bb080bb141f373b.19f51060020.1daeb3a80431c647=---


From win-pv-devel-bounces@lists.xenproject.org Sat Jul 11 16:30:34 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 11 Jul 2026 16:30:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1360436.1613308 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiab3-0001m1-Dc; Sat, 11 Jul 2026 16:30:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1360436.1613308; Sat, 11 Jul 2026 16:30:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wiab3-0001lu-Ap; Sat, 11 Jul 2026 16:30:33 +0000
Received: by outflank-mailman (input) for mailman id 1360436;
 Sat, 11 Jul 2026 16:30:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f52040cb5000edb5@swg.vates.tech>)
 id 1wiab1-0001ln-Ob
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 16:30:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wiab1-009s5U-5Q
 for win-pv-devel@lists.xenproject.org; Sat, 11 Jul 2026 18:30:31 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f52040cb5000edb5@swg.vates.tech>)
 id 6a526ef2-e002-0a2a0a5209dd-0a2a45049be8-40
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 18:30:30 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f52040cb5000edb5@swg.vates.tech>)
 id 6a526fa6-b1e5-0a2a45040019-b9ff1c2291ff-3
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 18:30:30 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f52040cb5000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Sat, 11 Jul 2026 16:30:24 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 4DDD28108D
 for <win-pv-devel@lists.xenproject.org>; Sat, 11 Jul 2026 18:30:24 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=Qf5WMlmlPBvwU8+8TBGnMzh1CqX3AcuvZZO7rvjB9NM=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=AjibEyPEaGpI/zb7iG61sm7wk3k24Iv4CEtHze9PUpN1Ga6xi3MTIeExfbpJiSI32FSFbJW/6
 35j4WUnZ9aANWdKxx10LLG+rn3WZyd0Eeh8WOIUWpK5XDLmTpqxgV6hQgm1ANVd5o1VeKusalWq
 FF/yBPX/rXRZLCysoc0eOHMmqvd0yz8V6o9wJgIkuuN15bwKHqcDFEwvbXGdCpsDtOi/buZ2rUb
 lRIwExtM9EUScfVcIeTb5K+XhlUXGpSDNM//lYxLbnaccpkupNUzd0y7o7hSye0LGC3UHplFKEP
 39NAF9ViIaP5LVEbDqf9U2tEsUbef5yJnsFbvcOcOmiA==
X-Zone-Loop: 6f9725a61557438a7dd24aeae192aa7960dcb873f870
x-campaign-type: default
x-transaction-id: bef4c29e-c19b-4045-a6b8-7cf92078b8e4
x-swg-uid: 01-50cecccb-a90a-4a73-b137-333b6303cdea
X-Mailer: Sweego
Message-ID:
 <1783787425.8631fc262581453bbf619ec5b2062170.19f52040cb5000edb5@vates.tech>
x-swg-bid: 1783787425.8631fc262581453bbf619ec5b2062170.19f52040cb5000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Sat, 11 Jul 2026 18:30:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] Conditionally restart the RX ring from packet return
To: win-pv-devel@lists.xenproject.org
References: <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
 <20260711115237.255-1-ngoc-tu.dinh@vates.tech>
 <1783770761.8631fc262581453bbf619ec5b2062170.19f5105c9d6000edb5@vates.tech>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <1783770761.8631fc262581453bbf619ec5b2062170.19f5105c9d6000edb5@vates.tech>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.665.6098d4fa78f2b63f.19f52040a70.e4d0d61b1f70f02b=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1783787424368
X-purgate-ID: tlsNG-ebf023/1783787430-7EA55FE7-815EB9D9/0/0
X-purgate-type: clean
X-purgate-size: 5504

---=Part.665.6098d4fa78f2b63f.19f52040a70.e4d0d61b1f70f02b=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 11/07/2026 13:52, Tu Dinh wrote:
> Currently, the RX ring is restarted on packet return regardless of
> whether there are sufficient resources to afford it=2E In cases where th=
e
> packet cache has been exhausted, restarting the RX ring will be
> counterproductive=2E
>=20
> Make ReceiverRingFill return STATUS_SUCCESS only if the RX ring has
> been filled without errors=2E Base the decision of restarting the RX rin=
g
> from __ReceiverRingReturnPacket on this return status=2E
>=20
> Move __ReceiverRingReturnPacket below ReceiverRingFill as the former now
> makes use of the latter=2E
>=20
> Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>

I'll split the moving of __ReceiverRingReturnPacket into a separate=20
patch in the next version=2E

> ---
>   src/xenvif/receiver=2Ec | 95 +++++++++++++++++++++++------------------=
--
>   1 file changed, 51 insertions(+), 44 deletions(-)
>=20
> diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
> index 359935c=2E=2E29bd325 100644
> --- a/src/xenvif/receiver=2Ec
> +++ b/src/xenvif/receiver=2Ec
> @@ -1709,49 +1709,6 @@ __ReceiverRingSend(
>           __ReceiverRingReleaseLock(Ring);
>   }
>  =20
> -_IRQL_requires_(DISPATCH_LEVEL)
> -static FORCEINLINE VOID
> -__ReceiverRingReturnPacket(
> -    IN  PXENVIF_RECEIVER_RING   Ring,
> -    IN  PXENVIF_RECEIVER_PACKET Packet,
> -    IN  BOOLEAN                 Locked
> -    )
> -{
> -    PMDL                        Mdl;
> -
> -    Mdl =3D &Packet->Mdl;
> -
> -    while (Mdl !=3D NULL) {
> -        PMDL    Next;
> -
> -        Next =3D Mdl->Next;
> -        Mdl->Next =3D NULL;
> -
> -        __ReceiverRingPutMdl(Ring, Mdl, Locked);
> -
> -        Mdl =3D Next;
> -    }
> -
> -    if (__ReceiverRingIsStopped(Ring)) {
> -        KIRQL   Irql;
> -
> -        KeRaiseIrql(DISPATCH_LEVEL, &Irql);
> -
> -        if (!Locked)
> -            __ReceiverRingAcquireLock(Ring);
> -
> -        if (__ReceiverRingIsStopped(Ring)) {
> -            __ReceiverRingStart(Ring);
> -            __ReceiverRingTrigger(Ring, TRUE);
> -        }
> -
> -        if (!Locked)
> -            __ReceiverRingReleaseLock(Ring);
> -
> -        KeLowerIrql(Irql);
> -    }
> -}
> -
>   static FORCEINLINE PXENVIF_RECEIVER_FRAGMENT
>   __ReceiverRingPreparePacket(
>       IN  PXENVIF_RECEIVER_RING   Ring,
> @@ -1828,7 +1785,7 @@ __ReceiverRingPushRequests(
>       Ring->RequestsPushed =3D Ring->RequestsPosted;
>   }
>  =20
> -static VOID
> +static NTSTATUS
>   ReceiverRingFill(
>       IN  PXENVIF_RECEIVER_RING   Ring
>       )
> @@ -1837,6 +1794,7 @@ ReceiverRingFill(
>       PXENVIF_FRONTEND            Frontend;
>       RING_IDX                    req_prod;
>       RING_IDX                    rsp_cons;
> +    NTSTATUS                    status;
>  =20
>       Receiver =3D Ring->Receiver;
>       Frontend =3D Receiver->Frontend;
> @@ -1848,6 +1806,7 @@ ReceiverRingFill(
>  =20
>       KeMemoryBarrier();
>  =20
> +    status =3D STATUS_SUCCESS;
>       while (req_prod - rsp_cons < RING_SIZE(&Ring->Front)) {
>           PXENVIF_RECEIVER_PACKET     Packet;
>           PXENVIF_RECEIVER_FRAGMENT   Fragment;
> @@ -1857,6 +1816,7 @@ ReceiverRingFill(
>           Packet =3D __ReceiverRingGetPacket(Ring, TRUE);
>  =20
>           if (Packet =3D=3D NULL) {
> +            status =3D STATUS_INSUFFICIENT_RESOURCES;
>               __ReceiverRingStop(Ring);
>               break;
>           }
> @@ -1864,6 +1824,7 @@ ReceiverRingFill(
>           Fragment =3D __ReceiverRingPreparePacket(Ring, Packet);
>          =20
>           if (Fragment =3D=3D NULL) {
> +            status =3D STATUS_INSUFFICIENT_RESOURCES;
>               __ReceiverRingPutPacket(Ring, Packet, TRUE);
>               break;
>           }
> @@ -1889,6 +1850,52 @@ ReceiverRingFill(
>       Ring->Front=2Ereq_prod_pvt =3D req_prod;
>  =20
>       __ReceiverRingPushRequests(Ring);
> +
> +    return status;
> +}
> +
> +_IRQL_requires_(DISPATCH_LEVEL)
> +static FORCEINLINE VOID
> +__ReceiverRingReturnPacket(
> +    IN  PXENVIF_RECEIVER_RING   Ring,
> +    IN  PXENVIF_RECEIVER_PACKET Packet,
> +    IN  BOOLEAN                 Locked
> +    )
> +{
> +    PMDL                        Mdl;
> +
> +    Mdl =3D &Packet->Mdl;
> +
> +    while (Mdl !=3D NULL) {
> +        PMDL    Next;
> +
> +        Next =3D Mdl->Next;
> +        Mdl->Next =3D NULL;
> +
> +        __ReceiverRingPutMdl(Ring, Mdl, Locked);
> +
> +        Mdl =3D Next;
> +    }
> +
> +    if (__ReceiverRingIsStopped(Ring)) {
> +        KIRQL   Irql;
> +
> +        KeRaiseIrql(DISPATCH_LEVEL, &Irql);
> +
> +        if (!Locked)
> +            __ReceiverRingAcquireLock(Ring);
> +
> +        if (__ReceiverRingIsStopped(Ring) &&
> +            NT_SUCCESS(ReceiverRingFill(Ring))) {
> +            __ReceiverRingStart(Ring);
> +            __ReceiverRingTrigger(Ring, TRUE);
> +        }
> +
> +        if (!Locked)
> +            __ReceiverRingReleaseLock(Ring);
> +
> +        KeLowerIrql(Irql);
> +    }
>   }
>  =20
>   static FORCEINLINE VOID



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.665.6098d4fa78f2b63f.19f52040a70.e4d0d61b1f70f02b=---


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 13 10:08:34 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 13 Jul 2026 10:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1361587.1613771 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjDaS-00013V-WA; Mon, 13 Jul 2026 10:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1361587.1613771; Mon, 13 Jul 2026 10:08:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjDaS-00013O-TN; Mon, 13 Jul 2026 10:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1361587;
 Mon, 13 Jul 2026 10:08:32 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1wjDaR-00013I-Or
 for win-pv-devel@lists.xenproject.org; Mon, 13 Jul 2026 10:08:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wjDaQ-007kE7-It
 for win-pv-devel@lists.xenproject.org; Mon, 13 Jul 2026 12:08:30 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a54b90f-bab6-0a2a0a5309dd-0a2a4502d854-24
 for <win-pv-devel@lists.xenproject.org>; Mon, 13 Jul 2026 12:08:30 +0200
Received: from [52.101.57.46]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2)
 (envelope-from <owen.smith@citrix.com>)
 id 6a54b91d-64c6-0a2a45020019-3465392eddb3-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 13 Jul 2026 12:08:30 +0200
Received: from SA6PR03MB7760.namprd03.prod.outlook.com (2603:10b6:806:43c::5)
 by SN4PR03MB989349.namprd03.prod.outlook.com (2603:10b6:806:212::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.202.19; Mon, 13 Jul
 2026 10:08:28 +0000
Received: from SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38]) by SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38%3]) with mapi id 15.21.0202.014; Mon, 13 Jul 2026
 10:08:27 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dEHlUuvhFS6gtNR/iCMfu8NvubcICDjwZPgpLihSkdPyW30YvoyJYtbk+WGMKeMG1EiAw63KWvVoNdyo8ZwdJFYurdlxJ6ADo+aJ4QiNbGWpH4vwjqo5zvh/Py48ZptuyWi1Uz5h5rUM3nzdqS3PmF4LDk5TOdggEMi31lCwSQWL3T+duNfQRycEUPP2Dl7vtQRy+fiyLL3ITJAJYdS5qtaiIZxi1Fo97HqzjyNK79Pzm7EjlyawVbI98SW+o1vXX3L1WdNvqFdtL42k48nVlhrnOtJDI06tn/Yx+HhI83iSU8M26y2zMe82+OYFS/mRGQzB5whjEn4sd+PFakAiYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UpT4KHc4wiI+pf2PHNPtEBqUqT35+KomR3bH5lrIjiA=;
 b=kWUTFAd6NVQ8Hm2e5YR23FKryWJJU3qJRWpuYLc4HSbz3fWnceCThBo7XqsZL9L4JEomyLKdM07hn0FquWugDVqYfxCdFzy/p5PGfPntpzImn0RPD01ChTcONbcHfxFDrLROPSHG9qe+/HFBmu1tXCv2GHcTI/jkWXgXu4wXpL+zJYnOu1E/zsEhr2/j90iMapJncHkWRKkMZRFgOo6iu7uuXn2n+RQS9xVseM9qjqFalxrj/gc2Fp9x+Nn85rNKSPXEz9CJQp+dm5OgLEe/FLVyw3BeVGTJZIIj3i11iZ0HCQvTKsuDJ71rxjlFeaTCmiInRUwKwGjq3Uc7QiEEtg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UpT4KHc4wiI+pf2PHNPtEBqUqT35+KomR3bH5lrIjiA=;
 b=GKDwH36N3WOjbFc7A+TVKqnF3E8j47nnC2Qz8zLn9KeoXYdPMXQgcqfywPsm6JE/N9YOE1b3rbsjubKmronAQ+TRox3BT7usRykrO6ZhDDKbHISQ/y50Pfxh1+cO0sCm8yu/o+FcUJaKHjgU0NJ878yi/16w7KyvopjAktP+zB0=
From: Owen Smith <owen.smith@citrix.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: Re: [XENBUS PATCH] Suppress quota error messages in CacheCreateSlab
Thread-Topic: [XENBUS PATCH] Suppress quota error messages in CacheCreateSlab
Thread-Index: AQHdESvX+RIfkoBwh0myOW+ep/RFBrZrPDUd
Date: Mon, 13 Jul 2026 10:08:27 +0000
Message-ID:
 <SA6PR03MB7760DCB1F4F3207194060E57FEFA2@SA6PR03MB7760.namprd03.prod.outlook.com>
References:
 <1783770681.8631fc262581453bbf619ec5b2062170.19f51049246000edb5@vates.tech>
 <1783770776.8631fc262581453bbf619ec5b2062170.19f510601c5000edb5@vates.tech>
In-Reply-To:
 <1783770776.8631fc262581453bbf619ec5b2062170.19f510601c5000edb5@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR03MB7760:EE_|SN4PR03MB989349:EE_
x-ms-office365-filtering-correlation-id: 0d56fd99-367d-4117-3ab7-08dee0c6af1e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|23010399003|366016|1800799024|38070700021|56012099006|4143699003|11063799006|22082099003|18002099003;
x-microsoft-antispam-message-info:
 ms8wbBkIqwxeVTdvVp/BgNUX8wvBmC3NuG2OPRXL2/GwcdnuCjBSYKO3jvtVsLPw1hK6WGNUO/I7N+UP9B1kOpCug68gZIdEXsgH6yXFy3egD3G+BI0AEz5OcWq21buAbrLxCcKMie7+G6gq9epAlVt5xGYdm+LZoRN37kaTFHo1JEN03Mr7YFHVRWdtYGRdMtKifDDyqkBgDGvVup0X8+qIviveTiSWFGs8aBPBg2akeDlFPEltnp4xxWUrfuFcoF4VFzGTKvVqDjja8gUbK2xzj7t5nxygXeu6ieCw/u0Q236IJicbxD6mofuFmUjmTT4kjpKWUstc1kT8i6teOlSVUxQMzeOQLlxm0gWwQL5TrNFA+4WEH4xujZlX7OtYiEl5CI2wCdmaCTk8Sr49N5eJjWvos4B9t6so9aZh+ixVEEmfACFNBNglZ+nXRpnVyy9gnkOb1H1RfPZgdQ0CgaWmVd9Tn7C87fJuRIwCEaFSbmaQzN2KnLv+hXAid1LXZ4caljY7KbBYDuhLTTNUCcr1B/PiBjGqkbXsRfkwMCb9Cd0bC57smnrAYtrBTl0cBL5ZvPwUkZSwwsILCkVDJbYO9e20bu1FscghTe4+nF/lkX3AgWwDKeXInoDoeu1mOerCu1JDh9GlCWJXXcko8nUUEtihMKdHd6xSfKxqxK/h8Mde71rHzxZS4o92NA09p2VugwJb/BetW40DFHP3Br7j1TQVBPs9Pof6Dr1Y0Zs=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA6PR03MB7760.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(366016)(1800799024)(38070700021)(56012099006)(4143699003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?hSGvmZV0JJORtcL/IFU9bzmTOKUTLG9I9h+MnS32XP047iJYh6sJHyyDVQ?=
 =?iso-8859-1?Q?qxA0azUvkcV9j8xSZBDCwQxHW6TbP38TDazHJG4XRs+VNbVbb0e3YB214T?=
 =?iso-8859-1?Q?RwRVouQ4PeSZt/1VlfggFkokMai85FbLLX9g7I4vI4p45Qmmvwcp3Jkz98?=
 =?iso-8859-1?Q?fzYhGF5J41vt07kIM54A3gll+Ah/UShQeB6duxzZBITQfAq0H0N+ZIwoQd?=
 =?iso-8859-1?Q?k0j9HlnOtzIrw0mDpBwYXpI4ssTLTVndvs7SVmFvC+CY6j2yvkPM19zh79?=
 =?iso-8859-1?Q?5y9xacucbTmBi6yfl8Xxc9gkXjYoEkliCDpJvRfo809IrAUv/6Ecb1ireQ?=
 =?iso-8859-1?Q?LMYajSbtS98C4oLbiu4DsqzftUNGRDDpuIWgsUTwaaihKPyu43wtGvJSSF?=
 =?iso-8859-1?Q?4pCP3z6pdfnHUQrd4MSkO/k1MH0MtGet0ZkM+AMFyDh4QiP7NdKAz4bPzg?=
 =?iso-8859-1?Q?C89K/fMavHiyZ7e9TI0WLt4FzXHHvERmtKskop/91tIAZwj1kEdl7NE2q2?=
 =?iso-8859-1?Q?qoQyivLo4HLACqkot0flH8iprcvd5ecgFpx+D2Jhb0wKh7G+OKvlTgMEEt?=
 =?iso-8859-1?Q?0frBv1Jkqmu/YM8ZfS7QbxQBeHoHmXOMZO4St7jHn3uxtOVgMJDWhQVAin?=
 =?iso-8859-1?Q?L93YmEHK4oaviGvFYLDsIQMqy+pz2ebcgZ1n//lUEPDjPgOr1g9WEYvv+v?=
 =?iso-8859-1?Q?kt+xytK3L5DHT8CJKTJRa9E2aKqFKQR1LtBsVylA116r3u52vy6hitCQwz?=
 =?iso-8859-1?Q?zVGpPZyvN4gESsZDxmJbcawh8w/na5qp0Pfd2zaR6WzapO13pY6O23r9U8?=
 =?iso-8859-1?Q?tmDcJjzyGUaXjtlaLItX+6sDnhS8MLWH7lPxbMF59VD5SmxiGibiyViB6F?=
 =?iso-8859-1?Q?AEJoiSu9ZINP7EzrQ3gcL8FVS0b+e7zuSL9ZWM/UXtVUWR14ABuJ+v9REA?=
 =?iso-8859-1?Q?jiTIDDG4bVnJ5ZDu2uhg1Qaw6RMzautxuX+r+o3S1HU4jwnqTmduzcGvJn?=
 =?iso-8859-1?Q?wJNQZU4A60YFQp2Rw7a+zsWQ9tGYPu5RHFAnZKC2H+E3l8XCs28OdAJp55?=
 =?iso-8859-1?Q?iQ5AfSLsKz4QhgIike5EqTXUsb9ZY3xDRcksbgmmBYRCAKua3AulsDMW+m?=
 =?iso-8859-1?Q?xuR2hsbGUcTZvsx/+Q4i7ctAsfwv2wuiKHiMq19WYPmgPjlbwUm4D2Nka8?=
 =?iso-8859-1?Q?7nEQxWokfDiFvEDe4O/p1C43oSzAZtS7EdcIUImRYC9eNP2CAj419A2669?=
 =?iso-8859-1?Q?LvyV4qfXhIgkpbCqHJnNGIv8OragyckzwaP1PHU1/sh0DIrVGPidDwNMQX?=
 =?iso-8859-1?Q?CtT5q0kNOOF0EcsCnVyEmkC9onGRxbxgsmTRx1QWapYoPQZwwEvGVmdmDL?=
 =?iso-8859-1?Q?WHyxizEFRQWR4+qXb4HLwnLgasiNs7Oh1GkM064tIwZZSis01OmFMWNxQk?=
 =?iso-8859-1?Q?zeu5E0c7iS6saM7rvDU0vqAV3Bx+xpJ8VBwBga3IM143YmhWUe45PC4Tb+?=
 =?iso-8859-1?Q?mI/VHkGzDAKxpz21/x3yunMZATvtwcmSj2ipFgumBpqesJ/6O+c3lyqt6Q?=
 =?iso-8859-1?Q?E6OnTUQM0dtE57moqbW1qOl3zfSJhUflmq+pauJvTZeX3f5KWHsnfLDUyR?=
 =?iso-8859-1?Q?xwT6HkcKI97R2gtE31cTJ9XhddINwDvg0jv9CQwbbcGeVc8AC6QBIirEOY?=
 =?iso-8859-1?Q?IyKvJlnLgYerIqrIEmuPEr7rdzVakw8NapuUHdp2sSMUY8qfzaPnCTwc5z?=
 =?iso-8859-1?Q?HgZldXJD2LGsLfOA5zHpYVILoHbct00exiTqW8tmVc2KSS?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR03MB7760.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d56fd99-367d-4117-3ab7-08dee0c6af1e
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jul 2026 10:08:27.8632
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 2U/IKXGjKlsCMxG6h7Eq0NjxC57g1HK9DlSOohfk8RjXZ26YjgLHYxUR9P96IjCFUpQYogXjq9FNt6nmlxdvjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR03MB989349
X-purgate-ID: tlsNG-720697/1783937310-3D75FA87-81CF0E47/0/0
X-purgate-type: clean
X-purgate-size: 604

=0A=
> diff --git a/src/xenbus/cache.c b/src/xenbus/cache.c=0A=
> index e58e2f9..46201b4 100644=0A=
> --- a/src/xenbus/cache.c=0A=
> +++ b/src/xenbus/cache.c=0A=
> @@ -457,10 +457,9 @@ fail3:=0A=
>      __CacheFree(Slab);=0A=
> =0A=
>  fail2:=0A=
> -    Error("fail2\n");=0A=
> +    Error("fail2 (%08x)\n", status);=0A=
> =0A=
>  fail1:=0A=
> -    Error("fail1 (%08x)\n", status);=0A=
=0A=
Should probably change the "Error" to "Trace", so the logging is present=0A=
in checked builds=0A=
=0A=
> =0A=
>      return status;=0A=
>  }=0A=
> --=0A=
> 2.54.0.windows.1=0A=
=0A=
Owen=


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 15 10:19:00 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Jul 2026 10:19:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1362859.1614556 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwhf-00011H-Nr; Wed, 15 Jul 2026 10:18:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1362859.1614556; Wed, 15 Jul 2026 10:18:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwhf-000119-Ku; Wed, 15 Jul 2026 10:18:59 +0000
Received: by outflank-mailman (input) for mailman id 1362859;
 Wed, 15 Jul 2026 10:18:58 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@swg.vates.tech>)
 id 1wjwhe-000113-86
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 10:18:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wjwhd-00EOJH-6V
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 12:18:57 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@swg.vates.tech>)
 id 6a575e85-5cb7-0a2a0a5109dd-0a2a45049576-28
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:18:56 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@swg.vates.tech>)
 id 6a575e90-b57f-0a2a45040019-b9ff1c23b1e5-3
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:18:56 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f65495a73000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 15 Jul 2026 10:18:53 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 55DBB82307;
 Wed, 15 Jul 2026 12:18:53 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=5G3jgS3mkgNGIbq4qGbaEKlBWdBhq5MYsGYjLjqcCMo=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=uCbV2ly7Wn6XR1LcCkM3Jmyeyo7VvaB7hPZ+Urc6erBgribd4ijfZ24TM3kTC/NJqVS51+Avz
 RxWEM8HngzKA6RYi+LEnR5Go4s0pH37JwiftgqtYHRGYqHhPimMdT3mvm7FbzPOEDJpz3rK/vI5
 5SfQyw9Tj4daacrkHpaaTC4PnEny2tr1GM3tDvbTzHpJ99a39MsgMePHr0aCKPEL5aJBaIQDuyu
 WcxSnteMq09fODkuOgn81ASnkHX3cbL7+r8FGqM3P2I/w7CbFSV5BXLlYfV4hGXXiFCIPBT2tKk
 5LGi/RGp4G3pjo3FwaD8Wxs+8QgNU4FTmVy4PEL3hQ0g==
X-Zone-Loop: f44263ca286d09fc0d740fd29015c61092809416647c
x-campaign-type: default
x-transaction-id: 7d5f55b3-6fcc-4b16-bd08-0504a88494fb
x-swg-uid: 01-df1a951c-2c35-452e-a761-4327ca38c8d2
X-Mailer: Sweego
Message-ID:
 <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
x-swg-bid: 1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 0/4] XenVif receive backpressure adjustments
Date: Wed, 15 Jul 2026 12:18:49 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.843.eb7e349c3b45d8c5.19f65495860.ab30105df310fcea=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1784110733408
X-purgate-ID: tlsNG-ebf023/1784110736-51AD0B50-996A74C9/0/0
X-purgate-type: clean
X-purgate-size: 2697

---=Part.843.eb7e349c3b45d8c5.19f65495860.ab30105df310fcea=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Changes in v2:
* The error message in ReceiverPacketCtor() has been kept, since that
  is a genuine OOM and not related to quota limits=2E
* The moving of __ReceiverRingReturnPacket has been split to a separate
  patch=2E
* CacheCreateSlab quota errors now only suppressed in release builds=2E

To be accompanied with the Xenbus patch for suppressing quota-related
error messages in CacheCreateSlab=2E

Currently, traffic floods can cause anything from system lockups to
resource exhaustion (OOM) due to insufficient backpressure=2E The causes
are uncontrolled packet cache allocation, uncontrolled restarts and
queue DPC cascades=2E

An easy reproducer is to start a UDP flood from a Linux VM:

    #!/bin/sh

    set -e

    IFACE=3D"enX0"  # replace with real VM's iface name
    SRC_MAC=3D"02:00:00:00:00:01"
    DST_MAC=3D"02:00:00:00:00:02"  # replace with real victim VIF's MAC
    DST_IP=3D"192=2E0=2E2=2E1"  # replace with real victim VIF's IP
    UDP_PORT=3D"9"

    modprobe pktgen
    PG=3D/proc/net/pktgen

    echo rem_device_all > "$PG/kpktgend_0"
    echo "add_device $IFACE" > "$PG/kpktgend_0"
    echo clone_skb 1000 > "$PG/$IFACE"
    echo pkt_size 60 > "$PG/$IFACE"
    echo count 0 > "$PG/$IFACE"
    echo delay 0 > "$PG/$IFACE"
    echo "dst_mac $DST_MAC" > "$PG/$IFACE"
    echo "src_mac $SRC_MAC" > "$PG/$IFACE"
    echo "dst $DST_IP" > "$PG/$IFACE"
    echo "dst_min $DST_IP" > "$PG/$IFACE"
    echo "dst_max $DST_IP" > "$PG/$IFACE"
    echo "udp_dst_min $UDP_PORT" > "$PG/$IFACE"
    echo "udp_dst_max $UDP_PORT" > "$PG/$IFACE"

    echo start > "$PG/pgctrl"

To stop:

    echo stop > /proc/net/pktgen/pgctrl

The following patches attempt to address this problem by adding
backpressure at key exhaustion-prone locations (packet cache size, ring
restart behavior, ring unpause behavior)=2E With these patches, the victim
VM's system and networking remain responsive throughout the flood=2E

Tu Dinh (4):
  Cap the size of the receiver PacketCache
  Move __ReceiverRingReturnPacket below ReceiverRingFill
  Conditionally restart the RX ring from packet return
  Avoid requeuing QueueDpc in __ReceiverRingSwizzle

 src/xenvif/receiver=2Ec | 109 +++++++++++++++++++++++-------------------
 1 file changed, 61 insertions(+), 48 deletions(-)

--
2=2E54=2E0=2Ewindows=2E1


-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.843.eb7e349c3b45d8c5.19f65495860.ab30105df310fcea=---


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 15 10:19:43 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Jul 2026 10:19:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1362860.1614559 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwiN-00014t-Qh; Wed, 15 Jul 2026 10:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1362860.1614559; Wed, 15 Jul 2026 10:19:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwiN-00014m-Nf; Wed, 15 Jul 2026 10:19:43 +0000
Received: by outflank-mailman (input) for mailman id 1362860;
 Wed, 15 Jul 2026 10:19:43 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0e35000edb5@swg.vates.tech>)
 id 1wjwiN-00014O-1L
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 10:19:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wjwiM-00DTp5-73
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 12:19:42 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0e35000edb5@swg.vates.tech>)
 id 6a575eb8-e002-0a2a0a5209dd-0a2a4501ad2e-16
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:19:42 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0e35000edb5@swg.vates.tech>)
 id 6a575ebd-5984-0a2a45010019-b9ff1c23863b-3
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:19:42 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f654a0e35000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 15 Jul 2026 10:19:39 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 5AAD880D4E;
 Wed, 15 Jul 2026 12:19:39 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=g61mOGhE3ROok5UCfiv37u6Qs4LJ2jEtPRitc1bsANQ=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=tOZOSupEWTa2mNLs1YPJVmDSIOlB3uTElIoqSqeM9qerXl3Xu/WKpfg1124UQADijzhauBqGB
 D+sNbbOBXc1Z7r0Mzc70Z7ZUJksNYBNzpHZDpBGy+denm0kNYzOA2SwmKwxWxgdsaHosGpk9xum
 5xM4C2hN5ScBO9bSFZa+wJI6xtClZ0nDWgklZtD1hnNG24m+QixiOi6nyjAGbGQ5JY7vx58WiSX
 I2bWUTfQjxmclHhRlhkK03lhHV5mbhy8r9ZFLjaE/7lp11RdSYXmXASGx4uO/md5ClnwpuVBURU
 tIgGjc9TUTvjjvN47SjpEsuuPp0EPGJ6gO7hoKqs5sEQ==
X-Zone-Loop: 4d53496fdd3c6ec3893bede55a78a362849204b987a2
x-campaign-type: default
x-transaction-id: 33b72600-0e43-4512-a89a-b8d2f91373e6
x-swg-uid: 01-e3b1f5bf-3896-4503-8c3a-2bf0ddd0998b
X-Mailer: Sweego
Message-ID:
 <1784110780.8631fc262581453bbf619ec5b2062170.19f654a0e35000edb5@vates.tech>
x-swg-bid: 1784110780.8631fc262581453bbf619ec5b2062170.19f654a0e35000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 1/4] Cap the size of the receiver PacketCache
Date: Wed, 15 Jul 2026 12:19:26 +0200
In-Reply-To: <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
References: <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.844.a8752789ba07884a.19f654a0c21.47b42368249724d2=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1784110779425
X-purgate-ID: tlsNG-d62444/1784110782-1E07B757-663F981E/0/0
X-purgate-type: clean
X-purgate-size: 2372

---=Part.844.a8752789ba07884a.19f654a0c21.47b42368249724d2=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

ReceiverRingFill is triggered every ring poll DPC, and continually
drains RX responses into the packet cache=2E While code exists to handle
cache allocation failures, the packet cache itself is uncapped; if NDIS
doesn't process the packets quickly enough, it will eventually cause the
packet cache to allocate infinitely and crash the machine=2E

Add a cap to the packet cache as a workaround=2E While this will not truly
fix OOM scenarios, nor does it solve lockups caused by excessive
incoming traffic, it will at least allow the VM to recover after a
traffic flood=2E

Set the cache cap to 8 times the ring size (2048) for 8 MB of packet
cache memory per queue=2E This value was chosen to be larger than
IN_NDIS_MAX + XENVIF_RECEIVER_RING_SIZE, and was derived from running a
single-stream TCP benchmark, observing a max object count of 836, then
doubling that and rounding up to a power of 2=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/receiver=2Ec | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
index 14e8d0b=2E=2E749de28 100644
--- a/src/xenvif/receiver=2Ec
+++ b/src/xenvif/receiver=2Ec
@@ -77,6 +77,8 @@ typedef struct _XENVIF_RECEIVER_HASH {
=20
 #define XENVIF_RECEIVER_MAXIMUM_FRAGMENT_ID (XENVIF_RECEIVER_RING_SIZE - =
1)
=20
+#define XENVIF_RECEIVER_PACKET_CACHE_CAP    (XENVIF_RECEIVER_RING_SIZE * =
8)
+
 typedef struct _XENVIF_RECEIVER_RING {
     PXENVIF_RECEIVER            Receiver;
     ULONG                       Index;
@@ -2488,7 +2490,7 @@ __ReceiverRingInitialize(
                           Name,
                           sizeof (XENVIF_RECEIVER_PACKET),
                           0,
-                          0,
+                          XENVIF_RECEIVER_PACKET_CACHE_CAP,
                           ReceiverPacketCtor,
                           ReceiverPacketDtor,
                           ReceiverRingAcquireLock,
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.844.a8752789ba07884a.19f654a0c21.47b42368249724d2=---


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 15 10:19:44 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Jul 2026 10:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1362861.1614564 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwiN-00015B-Tf; Wed, 15 Jul 2026 10:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1362861.1614564; Wed, 15 Jul 2026 10:19:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwiN-00014y-P5; Wed, 15 Jul 2026 10:19:43 +0000
Received: by outflank-mailman (input) for mailman id 1362861;
 Wed, 15 Jul 2026 10:19:43 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a1036000edb5@swg.vates.tech>)
 id 1wjwiN-00014P-3A
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 10:19:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wjwiM-00DTp5-G2
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 12:19:42 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a1036000edb5@swg.vates.tech>)
 id 6a575eb8-e002-0a2a0a5209dd-0a2a4501ad2e-20
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:19:42 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a1036000edb5@swg.vates.tech>)
 id 6a575ebd-5984-0a2a45010019-b9ff1c23863b-4
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:19:42 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f654a1036000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 15 Jul 2026 10:19:40 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 01DBD822FD;
 Wed, 15 Jul 2026 12:19:39 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=PQCKpfHNN7jNqvhu6sF/foueoEFk0wPFzJX0zd9rFcg=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=H0VMD2TfUsatbgpmgzTeCUBDsTbPfgrkbQD7Uq8i2AXQcHt5Qpv1y8p1kPbQqwvOC2L2EYYhT
 vLlwMQyr7Z+/dmoX7XnLs1/HuPzGe8rxD0jWkpJMIIp82LTQ7zwXXvjTIB/JBiAmKh4SSjiIzQO
 iiB3QqO2o5m/pYGE7z6U3yP25fb/fK6PjoIhXPtF6vsv8at8l/PayeirbC3HqInG6+A0ooHaI1r
 FrQHL/ZF36FBjmKrPOwIynn/2tlxYXOndcklZwjI4cEFVQks0JU+Y0d+mg3/+8wFZDQQAiBNbFd
 DSDDArWF6lxze6hdmBNNh+yfcsyDXf8hP3qD18uFbKfw==
X-Zone-Loop: 25d7124c3b63363ac83cb7c017437a48a961ef80eb4e
x-campaign-type: default
x-transaction-id: f28148eb-f977-4965-833b-496f7c3dd83d
x-swg-uid: 01-0359b4fe-70a2-44ba-8b40-c16173987e08
X-Mailer: Sweego
Message-ID:
 <1784110780.8631fc262581453bbf619ec5b2062170.19f654a1036000edb5@vates.tech>
x-swg-bid: 1784110780.8631fc262581453bbf619ec5b2062170.19f654a1036000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 4/4] Avoid requeuing QueueDpc in __ReceiverRingSwizzle
Date: Wed, 15 Jul 2026 12:19:29 +0200
In-Reply-To: <20260715101937.1654-1-ngoc-tu.dinh@vates.tech>
References: <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
 <20260715101937.1654-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.847.394e5f46f894f47f.19f654a0e9d.204be9c08266519c=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1784110780061
X-purgate-ID: tlsNG-d62444/1784110782-C4B45757-B58951FE/0/0
X-purgate-type: clean
X-purgate-size: 1877

---=Part.847.394e5f46f894f47f.19f654a0e9d.204be9c08266519c=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

If a RX ring is paused by xennet, __ReceiverRingSwizzle immediately
queues another QueueDpc=2E In low-resource conditions where NDIS is unable
to process traffic, this will cause an infinite cascade of DPCs and lock
up the system=2E

Stop doing that in __ReceiverRingSwizzle=2E Instead, requeue QueueDpc from
ReceiverReturnPacket after incrementing Receiver->Returned to reevaluate
the paused status=2E This ensures that incoming traffic storms can be
safely handled=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/receiver=2Ec | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
index ca83ee3=2E=2Efcd91ab 100644
--- a/src/xenvif/receiver=2Ec
+++ b/src/xenvif/receiver=2Ec
@@ -1562,11 +1562,12 @@ __ReceiverRingSwizzle(
             Pause =3D FALSE;
     }
=20
+    // If there will be no more returns then we can't pause either
+    if (Pause && Receiver->Loaned =3D=3D Receiver->Returned)
+        Pause =3D FALSE;
+
     if (Pause) {
         Ring->Paused =3D TRUE;
-
-        if (KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL))
-            Ring->QueueDpcs++;
     } else {
         BOOLEAN Paused =3D Ring->Paused;
=20
@@ -3798,6 +3799,9 @@ ReceiverReturnPacket(
=20
     ASSERT3S(Loaned - Returned, >=3D, 0);
=20
+    if (KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL))
+        Ring->QueueDpcs++;
+
     KeSetEvent(&Receiver->Event, 0, FALSE);
 }
=20
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.847.394e5f46f894f47f.19f654a0e9d.204be9c08266519c=---


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 15 10:19:44 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Jul 2026 10:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1362862.1614568 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwiO-00017o-TX; Wed, 15 Jul 2026 10:19:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1362862.1614568; Wed, 15 Jul 2026 10:19:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwiO-00017g-QG; Wed, 15 Jul 2026 10:19:44 +0000
Received: by outflank-mailman (input) for mailman id 1362862;
 Wed, 15 Jul 2026 10:19:43 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0f6b000edb5@swg.vates.tech>)
 id 1wjwiN-00014Y-BT
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 10:19:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wjwiM-003vtb-Np
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 12:19:42 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0f6b000edb5@swg.vates.tech>)
 id 6a575ebe-2eae-0a2a0a5409dd-0a2a450ae9e4-4
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:19:42 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0f6b000edb5@swg.vates.tech>)
 id 6a575ebe-f2d2-0a2a450a0019-b9ff1c2393a3-3
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:19:42 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f654a0f6b000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 15 Jul 2026 10:19:40 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id C718282239;
 Wed, 15 Jul 2026 12:19:39 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=JzHcsYXxNPUxYmJqew2eTL/0udy5kJ/BuxU71qrYfSA=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=a5cfTZbBdiEtN16N6sFM1ieLj2yhIDKog2DEXnctT6/MkScgJaFZ5ZoJC52c3vEFGVVwv75Vl
 JOU9o061EL8kZn57o+35/nU86fPHGiyc0qagfNBYWXTjApPcsskmyFBJ/q0zISlpAEaSMQeT7iD
 7Y7oY2kpkNubhW5LMHKkGXyiv2KReEGiLW4JTuOTEGqdb+DDh/eV0MatC0fMIfw8aQkHZ3G0PoN
 oOcioWnaphgekObmH4aFFyE74madlD/ybU1rt1ZJIxISLwJzQM0O2MA0pvfmWPjVISjpVAdEyl2
 5hFe8l3MuKzbOKnUPMiYDP1m4Vi/gGfgkpb4ps/cjJ1Q==
X-Zone-Loop: 7aecae30eeb3895feac4657ca9f4d7b4f795a8bc2ee0
x-campaign-type: default
x-transaction-id: b5ee61e0-29f2-4bad-bf13-227ddfe67250
x-swg-uid: 01-cbee2c9f-6dbf-4d25-9236-3964bc72750b
X-Mailer: Sweego
Message-ID:
 <1784110780.8631fc262581453bbf619ec5b2062170.19f654a0f6b000edb5@vates.tech>
x-swg-bid: 1784110780.8631fc262581453bbf619ec5b2062170.19f654a0f6b000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 3/4] Conditionally restart the RX ring from packet return
Date: Wed, 15 Jul 2026 12:19:28 +0200
In-Reply-To: <20260715101937.1654-1-ngoc-tu.dinh@vates.tech>
References: <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
 <20260715101937.1654-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.846.20e1f76a08fd3e86.19f654a0de1.741a7bbdd4e09205=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1784110779873
X-purgate-ID: tlsNG-4011c0/1784110782-4B4D7CFC-F17BB4D3/0/0
X-purgate-type: clean
X-purgate-size: 3044

---=Part.846.20e1f76a08fd3e86.19f654a0de1.741a7bbdd4e09205=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Currently, the RX ring is restarted on packet return regardless of
whether there are sufficient resources to afford it=2E In cases where the
packet cache has been exhausted, restarting the RX ring will be
counterproductive=2E

Make ReceiverRingFill return STATUS_SUCCESS only if the RX ring has
been filled without errors=2E Base the decision of restarting the RX ring
from __ReceiverRingReturnPacket on this return status=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/receiver=2Ec | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
index bc6dcef=2E=2Eca83ee3 100644
--- a/src/xenvif/receiver=2Ec
+++ b/src/xenvif/receiver=2Ec
@@ -1787,7 +1787,7 @@ __ReceiverRingPushRequests(
     Ring->RequestsPushed =3D Ring->RequestsPosted;
 }
=20
-static VOID
+static NTSTATUS
 ReceiverRingFill(
     IN  PXENVIF_RECEIVER_RING   Ring
     )
@@ -1796,6 +1796,7 @@ ReceiverRingFill(
     PXENVIF_FRONTEND            Frontend;
     RING_IDX                    req_prod;
     RING_IDX                    rsp_cons;
+    NTSTATUS                    status;
=20
     Receiver =3D Ring->Receiver;
     Frontend =3D Receiver->Frontend;
@@ -1807,6 +1808,7 @@ ReceiverRingFill(
=20
     KeMemoryBarrier();
=20
+    status =3D STATUS_SUCCESS;
     while (req_prod - rsp_cons < RING_SIZE(&Ring->Front)) {
         PXENVIF_RECEIVER_PACKET     Packet;
         PXENVIF_RECEIVER_FRAGMENT   Fragment;
@@ -1816,6 +1818,7 @@ ReceiverRingFill(
         Packet =3D __ReceiverRingGetPacket(Ring, TRUE);
=20
         if (Packet =3D=3D NULL) {
+            status =3D STATUS_INSUFFICIENT_RESOURCES;
             __ReceiverRingStop(Ring);
             break;
         }
@@ -1823,6 +1826,7 @@ ReceiverRingFill(
         Fragment =3D __ReceiverRingPreparePacket(Ring, Packet);
        =20
         if (Fragment =3D=3D NULL) {
+            status =3D STATUS_INSUFFICIENT_RESOURCES;
             __ReceiverRingPutPacket(Ring, Packet, TRUE);
             break;
         }
@@ -1848,6 +1852,8 @@ ReceiverRingFill(
     Ring->Front=2Ereq_prod_pvt =3D req_prod;
=20
     __ReceiverRingPushRequests(Ring);
+
+    return status;
 }
=20
 _IRQL_requires_(DISPATCH_LEVEL)
@@ -1881,7 +1887,8 @@ __ReceiverRingReturnPacket(
         if (!Locked)
             __ReceiverRingAcquireLock(Ring);
=20
-        if (__ReceiverRingIsStopped(Ring)) {
+        if (__ReceiverRingIsStopped(Ring) &&
+            NT_SUCCESS(ReceiverRingFill(Ring))) {
             __ReceiverRingStart(Ring);
             __ReceiverRingTrigger(Ring, TRUE);
         }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.846.20e1f76a08fd3e86.19f654a0de1.741a7bbdd4e09205=---


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 15 10:19:45 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Jul 2026 10:19:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1362863.1614571 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwiP-000184-0r; Wed, 15 Jul 2026 10:19:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1362863.1614571; Wed, 15 Jul 2026 10:19:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwiO-00017s-Rv; Wed, 15 Jul 2026 10:19:44 +0000
Received: by outflank-mailman (input) for mailman id 1362863;
 Wed, 15 Jul 2026 10:19:43 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0efc000edb5@swg.vates.tech>)
 id 1wjwiN-00014Z-CF
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 10:19:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wjwiM-003vtb-PG
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 12:19:42 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0efc000edb5@swg.vates.tech>)
 id 6a575eb1-2eae-0a2a0a5409dd-0a2a450bd7b8-46
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:19:42 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a0efc000edb5@swg.vates.tech>)
 id 6a575ebe-b7e8-0a2a450b0019-b9ff1c129573-3
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:19:42 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f654a0efc000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 15 Jul 2026 10:19:40 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 9AB9782179;
 Wed, 15 Jul 2026 12:19:39 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=OTmkKhTxqqgUnzwLgAH8YPUq0lorr1umBlP6kGvyc3w=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=pphSU9noZEY0wmwn/D3DbGTLHKUmc0WVAcrfF7a66M9TSS81BJIS0Ajp1WnXMnoEqqP9GLNUe
 nPRFPAofk+cXEtPdFcAucd/A7ToLY53A1szRX8ovAP+Yt+qE3dDBPVORVdJkJ5GKJmQ9fwDb/oW
 /lP3SuTuy/Tv2e3zP8iKHeoP4NkotjIQ1ZUpIrfpL1R14iU78xOmzEtls4SA2Z7fgZImo1pob/g
 5IaLsjq/S6HDnbxd35v027OJ0OM9hJwssoH1T1cJhNzS8gZG10J68l8QxrDSeXYLBN3EVROa0AI
 IELfNctAdVkqvPOwsHcuO9sJQ3pepUg0i7rJ9zSAefYw==
X-Zone-Loop: 47d3c17df577893145193521790db475143228cc16b2
x-campaign-type: default
x-transaction-id: f6299e56-5b77-4449-9dc1-52a62e039b93
x-swg-uid: 01-3d163962-bba9-42ec-acc4-c520c53d7611
X-Mailer: Sweego
Message-ID:
 <1784110780.8631fc262581453bbf619ec5b2062170.19f654a0efc000edb5@vates.tech>
x-swg-bid: 1784110780.8631fc262581453bbf619ec5b2062170.19f654a0efc000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 2/4] Move __ReceiverRingReturnPacket below ReceiverRingFill
Date: Wed, 15 Jul 2026 12:19:27 +0200
In-Reply-To: <20260715101937.1654-1-ngoc-tu.dinh@vates.tech>
References: <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
 <20260715101937.1654-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.845.c16abb8d4e0e7e63.19f654a0d28.10aff66084c0fcb8=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1784110779688
X-purgate-ID: tlsNG-42698a/1784110782-1BED69EA-2C6E246F/0/0
X-purgate-type: clean
X-purgate-size: 3124

---=Part.845.c16abb8d4e0e7e63.19f654a0d28.10aff66084c0fcb8=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

__ReceiverRingReturnPacket will make use of ReceiverRingFill later=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/receiver=2Ec | 86 +++++++++++++++++++++----------------------
 1 file changed, 43 insertions(+), 43 deletions(-)

diff --git a/src/xenvif/receiver=2Ec b/src/xenvif/receiver=2Ec
index 749de28=2E=2Ebc6dcef 100644
--- a/src/xenvif/receiver=2Ec
+++ b/src/xenvif/receiver=2Ec
@@ -1711,49 +1711,6 @@ __ReceiverRingSend(
         __ReceiverRingReleaseLock(Ring);
 }
=20
-_IRQL_requires_(DISPATCH_LEVEL)
-static FORCEINLINE VOID
-__ReceiverRingReturnPacket(
-    IN  PXENVIF_RECEIVER_RING   Ring,
-    IN  PXENVIF_RECEIVER_PACKET Packet,
-    IN  BOOLEAN                 Locked
-    )
-{
-    PMDL                        Mdl;
-
-    Mdl =3D &Packet->Mdl;
-
-    while (Mdl !=3D NULL) {
-        PMDL    Next;
-
-        Next =3D Mdl->Next;
-        Mdl->Next =3D NULL;
-
-        __ReceiverRingPutMdl(Ring, Mdl, Locked);
-
-        Mdl =3D Next;
-    }
-
-    if (__ReceiverRingIsStopped(Ring)) {
-        KIRQL   Irql;
-
-        KeRaiseIrql(DISPATCH_LEVEL, &Irql);
-
-        if (!Locked)
-            __ReceiverRingAcquireLock(Ring);
-
-        if (__ReceiverRingIsStopped(Ring)) {
-            __ReceiverRingStart(Ring);
-            __ReceiverRingTrigger(Ring, TRUE);
-        }
-
-        if (!Locked)
-            __ReceiverRingReleaseLock(Ring);
-
-        KeLowerIrql(Irql);
-    }
-}
-
 static FORCEINLINE PXENVIF_RECEIVER_FRAGMENT
 __ReceiverRingPreparePacket(
     IN  PXENVIF_RECEIVER_RING   Ring,
@@ -1893,6 +1850,49 @@ ReceiverRingFill(
     __ReceiverRingPushRequests(Ring);
 }
=20
+_IRQL_requires_(DISPATCH_LEVEL)
+static FORCEINLINE VOID
+__ReceiverRingReturnPacket(
+    IN  PXENVIF_RECEIVER_RING   Ring,
+    IN  PXENVIF_RECEIVER_PACKET Packet,
+    IN  BOOLEAN                 Locked
+    )
+{
+    PMDL                        Mdl;
+
+    Mdl =3D &Packet->Mdl;
+
+    while (Mdl !=3D NULL) {
+        PMDL    Next;
+
+        Next =3D Mdl->Next;
+        Mdl->Next =3D NULL;
+
+        __ReceiverRingPutMdl(Ring, Mdl, Locked);
+
+        Mdl =3D Next;
+    }
+
+    if (__ReceiverRingIsStopped(Ring)) {
+        KIRQL   Irql;
+
+        KeRaiseIrql(DISPATCH_LEVEL, &Irql);
+
+        if (!Locked)
+            __ReceiverRingAcquireLock(Ring);
+
+        if (__ReceiverRingIsStopped(Ring)) {
+            __ReceiverRingStart(Ring);
+            __ReceiverRingTrigger(Ring, TRUE);
+        }
+
+        if (!Locked)
+            __ReceiverRingReleaseLock(Ring);
+
+        KeLowerIrql(Irql);
+    }
+}
+
 static FORCEINLINE VOID
 __ReceiverRingEmpty(
     IN  PXENVIF_RECEIVER_RING   Ring
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.845.c16abb8d4e0e7e63.19f654a0d28.10aff66084c0fcb8=---


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 15 10:20:05 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Jul 2026 10:20:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1362864.1614576 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwij-0001vE-10; Wed, 15 Jul 2026 10:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1362864.1614576; Wed, 15 Jul 2026 10:20:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wjwii-0001uw-UV; Wed, 15 Jul 2026 10:20:04 +0000
Received: by outflank-mailman (input) for mailman id 1362864;
 Wed, 15 Jul 2026 10:20:03 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a5f08000edb5@swg.vates.tech>)
 id 1wjwih-0001f3-KQ
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 10:20:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wjwih-003vyW-0v
 for win-pv-devel@lists.xenproject.org; Wed, 15 Jul 2026 12:20:03 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a5f08000edb5@swg.vates.tech>)
 id 6a575ed1-2eae-0a2a0a5409dd-0a2a450299e4-12
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:20:03 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19f654a5f08000edb5@swg.vates.tech>)
 id 6a575ed2-6ca4-0a2a45020019-b9ff1c239d6b-3
 for <win-pv-devel@lists.xenproject.org>; Wed, 15 Jul 2026 12:20:02 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19f654a5f08000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 15 Jul 2026 10:20:00 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id EB20B82239;
 Wed, 15 Jul 2026 12:19:59 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=QheKlsL++8Qom0T30Mw09u69b0xB1D8RJG6qsZ2UObQ=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=hLf3IgsxZZA6Tyf9P82391lIo1sbEunx2FqC6Or2wL1APqLuOQ61be/DIgrk+s8Mo4UighcNb
 I+giqr0vAq8QhdjfpDAVTvp4w/crfEkXQlhG4ywYyaRZSZ/pEF0PFTf6odNnI8ssI712WrB1qgT
 IgZap+vQFSFJeYRyFhPdIb+tR8l65OHErSrFbcx8gtvsQTAPW6mrZpj/byghiVa1nu7KuwXrH7/
 vPs9krq7d2JhjdbCFFO9RgMlTOEMvUdASVqK+oHVSOKjMu63iDezX2xAWiaQyxacBvgH1vH3T9M
 E2svBhHx63qz9FNWWAdP9cTGohnOKfZdtq+bJtFOaktA==
X-Zone-Loop: 6f2ebe12aeda3997e84ce222eb4abcf6e7f58942353b
x-campaign-type: default
x-transaction-id: 3402a921-ae43-4d95-a094-5ee88651d939
x-swg-uid: 01-aa7d387c-71ad-4330-9d5a-8fab809b356a
X-Mailer: Sweego
Message-ID:
 <1784110800.8631fc262581453bbf619ec5b2062170.19f654a5f08000edb5@vates.tech>
x-swg-bid: 1784110800.8631fc262581453bbf619ec5b2062170.19f654a5f08000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2] Suppress CacheCreateSlab quota errors in release builds
Date: Wed, 15 Jul 2026 12:19:55 +0200
In-Reply-To: <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
References: <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.848.bb464091987e9c84.19f654a5cb9.7b15c2fa4573400b=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1784110800057
X-purgate-ID: tlsNG-720697/1784110802-664B62AC-4255FAEF/0/0
X-purgate-type: clean
X-purgate-size: 1101

---=Part.848.bb464091987e9c84.19f654a5cb9.7b15c2fa4573400b=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

CacheCreateSlab can hit quota errors during normal operation (e=2Eg=2E high
network traffic)=2E

Don't print the error message in release builds to avoid flooding the
logs=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenbus/cache=2Ec | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenbus/cache=2Ec b/src/xenbus/cache=2Ec
index e58e2f9=2E=2Eeb7020d 100644
--- a/src/xenbus/cache=2Ec
+++ b/src/xenbus/cache=2Ec
@@ -457,10 +457,10 @@ fail3:
     __CacheFree(Slab);
=20
 fail2:
-    Error("fail2\n");
+    Error("fail2 (%08x)\n", status);
=20
 fail1:
-    Error("fail1 (%08x)\n", status);
+    Trace("fail1 (%08x)\n", status);
=20
     return status;
 }
--=20
2=2E54=2E0=2Ewindows=2E1



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.848.bb464091987e9c84.19f654a5cb9.7b15c2fa4573400b=---


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 16 07:07:46 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 16 Jul 2026 07:07:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1363494.1615090 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wkGC9-00024C-6v; Thu, 16 Jul 2026 07:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1363494.1615090; Thu, 16 Jul 2026 07:07:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wkGC9-000245-4R; Thu, 16 Jul 2026 07:07:45 +0000
Received: by outflank-mailman (input) for mailman id 1363494;
 Thu, 16 Jul 2026 07:07:43 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1wkGC7-00023z-7v
 for win-pv-devel@lists.xenproject.org; Thu, 16 Jul 2026 07:07:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wkGC6-005D2S-3s
 for win-pv-devel@lists.xenproject.org; Thu, 16 Jul 2026 09:07:42 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a58833d-5cb7-0a2a0a5109dd-0a2a4505be64-0
 for <win-pv-devel@lists.xenproject.org>; Thu, 16 Jul 2026 09:07:41 +0200
Received: from [52.101.56.13]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a58833c-4cb1-0a2a45050019-3465380d64ff-3
 for <win-pv-devel@lists.xenproject.org>; Thu, 16 Jul 2026 09:07:41 +0200
Received: from SA6PR03MB7760.namprd03.prod.outlook.com (2603:10b6:806:43c::5)
 by PH7PR03MB7064.namprd03.prod.outlook.com (2603:10b6:510:2a5::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul
 2026 07:07:37 +0000
Received: from SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38]) by SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38%3]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026
 07:07:37 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wAn9orqTm7jzYJ397ZYZFmiHIGuAFAAA3eOpf5ykQxRQnyn84+rNgWriOVkYGUv1WX2wIoeZNzKAY6TsoK9hU1yCtljoaDxVMNbzmglZRFG0o37uVzXCQ+YXqfsSfQF1zXrudO3SE5CTtVrjFe9VfPg6DU8Bs+n5C7AYrGoprbRARWpytT1AwTWm3dSOdZIxgnTny5kPkjZFlIacoc3VAG1MqoQ3H+PqkfRuR9CFYLFUh6/khaWWNEa2lx1eTUFV3F5hMzGmeqNpdKqopt9SJ/O+63YyAleZ7124t+pTz9LDwjNRxvI9tD8SqQza0+QK5kTB4z5gqOTsQodYPUiO/w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GeGqKvSiVptpjN/sj9Tvpm8CgxJTagR7tVb1o6LCEeg=;
 b=JfvGw808HsjK5m6ksuvY9L+vc0MBu/lCr0sr8tOkevPXQqQ6lsZM7StFIOv49styZSHHh2qDUFQoFQb/MLGbzPmkXNlz1cz9/Ut0ul7k0y7ZDPm3eEpvimZr7/d9KuXbHB6FPHp4RiwDv0TvxteZX9+agmX4s1bDOIGSsZo4Y7/xN//tYzIAjwL5JQHRG0Zb2EmYc6UpxpuQ9E41Fcv8q5rfPnWCntl4uk+svUdZBdMp1bLA53i/rLUA4z4uEdEf975PjJdFMOTYCjh1Uu44XRIfNRg7n0ZC89xjFI3rzdLK8QAElIwVeVG7P3gCCaOu93q/R5kY5p+0aa5k7ARPpQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GeGqKvSiVptpjN/sj9Tvpm8CgxJTagR7tVb1o6LCEeg=;
 b=qC4gmsco9iuxzyCei+3b16Qv3pjqzq8g03F07/fnBWfNrHoew4ZSYbgK+weGpLFE4z05Bh447G6oiyyz+p9wlr7e+/jX0+GOTczLSA5VU3iK+tzOr3OCKSvuQg1Z1NCXBEYF+7N1y3a6P2eY+NhLfCRMx9XBgynJo2kpoCltjZc=
From: Owen Smith <owen.smith@citrix.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 0/4] XenVif receive backpressure adjustments
Thread-Topic: [PATCH v2 0/4] XenVif receive backpressure adjustments
Thread-Index: AQHdFENhaOXF1pK43Eia+CnvdkqscLZvus3f
Date: Thu, 16 Jul 2026 07:07:37 +0000
Message-ID:
 <SA6PR03MB7760BDAF70D3741AB06DF012FEC72@SA6PR03MB7760.namprd03.prod.outlook.com>
References:
 <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
In-Reply-To:
 <1784110734.8631fc262581453bbf619ec5b2062170.19f65495a73000edb5@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR03MB7760:EE_|PH7PR03MB7064:EE_
x-ms-office365-filtering-correlation-id: 4f191b7d-d100-4386-05f9-08dee308eae4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|18002099003|22082099003|38070700021|10067099003|56012099006|11063799006;
x-microsoft-antispam-message-info:
 Hszwe1T29EDNnm++cBCsMnDOicKFS/0yhPRzPtFKTzNdxaEMgsXCBwHkSYV1Wen74q6kts2EGeDtk2Ez7sh+99/QGFJsZWdBGZfHG7dKm1cLQIkpcSfh+hBanzUXtWvETo3TzXDLk5waXUb2c6EYqerfw4Y/ciZgUOnMyYD866rZCgcktBnLt6HYVoN9aB5SFVr6rnW5lhZ+fUOaaov65fHPiBLjlb/KZblYiKyYz9AyHQaM6FB7ENdlIcmUpfe5bKfvQ4/+qOPXKj6IAoKg/yO+p9YmdIOUNaeaPIP6ok/0iHornZtcGD9BP/VwgRwEDuC/cgwKQCX11pJaIgcOlo+oQija2tqmhWAxjNHqooOspGD/wzVtt5016EqpqHh9PN/2I6hz79oYZyrTfqUTM5upRgbOemz9atDKI/RRTDizVT5TBpdNiFdldrAjx8jKULZhx+90IQIw5uHbuPDJksZw26eZJSqulceeBvgNPG2uqR2MXqfxhaBNXTMZCumCBGbXV2AzRpD7IcHi32zg9QOvVKwyX9P9zjr08/3uxOBCxLZtqkVdTPS64Vwi29iyXOziVGGcGIwBusBCucBXMojIXBHqtGCKd6/xCZJVReRPJ3+pXDmt3Dxn6HWGgni//MN4nHkG/7tt9jCeYoxirdnr66NB5mBXyetaKlW4g2E=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA6PR03MB7760.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(18002099003)(22082099003)(38070700021)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?aTqRN7Xm+VKzLB0mxey7+N+uIW9Vwpxwm1/64p5UkDbmrCS1JL6gRTXGFXnX?=
 =?us-ascii?Q?CuqESJrM5QmdS3Be5LHf+ccZieYho5JeSUlAvVpoU20UIITqosxkMdeAUVig?=
 =?us-ascii?Q?PoK3HDEPsrPj1c83MRpHi0pqSR6MbTh3em3U2nrL9d1XJDR4YcUmfWPe8XpO?=
 =?us-ascii?Q?oaB1kYw/iu/8YIMTZmHyt6tKe6jDBWio1OMZtLYEL0nYNYpygVAgrwCm1ulO?=
 =?us-ascii?Q?7mDV7SoN0za9gA9YJPnPR3u7V0kE8kktd3o5O7ENObkJEb2fP5BHpbCMI6aH?=
 =?us-ascii?Q?WW3h6GRarigQwMiYIIqrIWNYAljaw+WeQIU7c3nLQCmILhvF9bVc+FdJFMC2?=
 =?us-ascii?Q?9L+s6oaAr9NrJC28Tlc4EghypRsysMdvhg85Q8WetgAus1NUBipQBi95Bucn?=
 =?us-ascii?Q?es2JawYq+XCbHdMERDifeHHDDgPfESdGRl5w61R9hGyFgXfyNBkBWwHVFgUB?=
 =?us-ascii?Q?1D6a1SuYps8gIksTzwqeopXyqMRiwxOuLsJhGiqq2oMS1d3cbmdzAVM2t4pm?=
 =?us-ascii?Q?JTkAOMKSn9hvbRuXQi/FwrPQccEJAVYBZwsb2ZnmabjgqVPDM8UhHhkczmDB?=
 =?us-ascii?Q?dN+44TbrRo9W288ycZe1oFf9c7Q6FjGKXZN6UGhckHp2i1mIDzmxErbc7tyF?=
 =?us-ascii?Q?IMlr8oMCuKGs9G+BlUv3/V8utfSiJEx7d7llwcPGUBNlT1Pm3R24D2sinr6k?=
 =?us-ascii?Q?ARp86cA+6SD2lqYyI1aLmpM1RKaSTsuUYZK5wVkx3nMEfZdQSvDfwcWIyE4D?=
 =?us-ascii?Q?nlWXav6yEXERuqj+uAyLtaJ3NgXLQT/JPIJ2pGwbDxA2ZY+Q8qE+8rJ7xc6p?=
 =?us-ascii?Q?AIu3DwRE8WaForo8Z9kJ7by8gARC+5/NWY24382PBl+kPxlRzjxTEY4QGBA5?=
 =?us-ascii?Q?4T/ymcTP+Z1X6wNQ2JrOuOrh65AGzLj25DUNny3rR2/wAAuaJfIey+q1IATF?=
 =?us-ascii?Q?hH+qbm5LleyfnOo+3gHQ0tXMeWnR1uBX9YkiYaN2No/vwXgjoEU1L/X7nUbC?=
 =?us-ascii?Q?LSpvYi3XIqXTMEqimHdyjtWZZNWvBR8Mup3juO8/L/VbpM6mX7sxyagGY6XH?=
 =?us-ascii?Q?S8LIrKo3BBqQ/hdOrrAlfxOAHkEOeL16lg9gLXRIOmMYpT5V6UI3YNCls9B7?=
 =?us-ascii?Q?Ek0HohoR5wtvwRgfMkluy/tgR0NcF4R6pU2OGYgM88mJk61an+j0KKpAkfOx?=
 =?us-ascii?Q?/ozFlc8FVQFd0lHw3Q1JF1AXfLKK/qGx2mf4DHRF+nj7ZUy+PdggFfgo4012?=
 =?us-ascii?Q?fGzFFS3rOe7JEN7PkzsLzaMRqwGtYNA3ilzUx991ImExXNBtXLNLw+kv0eQh?=
 =?us-ascii?Q?u7wKE7nwh6fCaPIIz+zWcHhJkdrO0qHEGFA3xjTnQ6RleP0OR3HYFy+Nskwh?=
 =?us-ascii?Q?ETRgnM9/ukNw/ase6vBcurcJ/s0wht7rUPEuBh+Ny7X4NblyRbRfn+HSGvTK?=
 =?us-ascii?Q?GEc/4vV8nXXwYeoVMt3tjDsnrGcIPYv45dPq/LQE/kVOQpSYTcUNsr/1OPwA?=
 =?us-ascii?Q?PcSkKlzFJb36v6JO4HyRa2dkSFA0Kfiw5a6hcsfFK3ILYbhV2GQPgNAjDDOH?=
 =?us-ascii?Q?Q46LK2HXa6CGDLVNtthOZXlH6vBE1TY+tedI2SNtS4wDhM1u9M1ybx6u1bC9?=
 =?us-ascii?Q?CxBbohIiK8p2QNpSOnvBZft96d3wC9bnAMJ4wzvta1W31zSU08Ovs+idnfbe?=
 =?us-ascii?Q?kXsymWvijyUbNjHdT1xyZ92/+39UoJHeKdoU8CElSmK1Bqu3UY2/nnLsEbwR?=
 =?us-ascii?Q?+venrYAs9Q=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR03MB7760.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f191b7d-d100-4386-05f9-08dee308eae4
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jul 2026 07:07:37.2939
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wbHFSXZR334mWTlstaeMERyYWs3XEcK5w9pvAnQXB4FI0p4+yXP/EkP0fY1hqb6Mv4Pimv4e8eMkoXdSzug6vw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7064
X-purgate-ID: tlsNG-c201ff/1784185661-F68B62A1-341A236B/0/0
X-purgate-type: clean
X-purgate-size: 2863

This series on xenvif, and the cache logging change to xenbus
Reviewed-by: Owen Smith <owen.smith@citrix.com>

________________________________________
From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> on behalf of=
 Tu Dinh <ngoc-tu.dinh@vates.tech>
Sent: 15 July 2026 11:18 AM
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh
Subject: [PATCH v2 0/4] XenVif receive backpressure adjustments

Changes in v2:
* The error message in ReceiverPacketCtor() has been kept, since that
  is a genuine OOM and not related to quota limits.
* The moving of __ReceiverRingReturnPacket has been split to a separate
  patch.
* CacheCreateSlab quota errors now only suppressed in release builds.

To be accompanied with the Xenbus patch for suppressing quota-related
error messages in CacheCreateSlab.

Currently, traffic floods can cause anything from system lockups to
resource exhaustion (OOM) due to insufficient backpressure. The causes
are uncontrolled packet cache allocation, uncontrolled restarts and
queue DPC cascades.

An easy reproducer is to start a UDP flood from a Linux VM:

    #!/bin/sh

    set -e

    IFACE=3D"enX0"  # replace with real VM's iface name
    SRC_MAC=3D"02:00:00:00:00:01"
    DST_MAC=3D"02:00:00:00:00:02"  # replace with real victim VIF's MAC
    DST_IP=3D"192.0.2.1"  # replace with real victim VIF's IP
    UDP_PORT=3D"9"

    modprobe pktgen
    PG=3D/proc/net/pktgen

    echo rem_device_all > "$PG/kpktgend_0"
    echo "add_device $IFACE" > "$PG/kpktgend_0"
    echo clone_skb 1000 > "$PG/$IFACE"
    echo pkt_size 60 > "$PG/$IFACE"
    echo count 0 > "$PG/$IFACE"
    echo delay 0 > "$PG/$IFACE"
    echo "dst_mac $DST_MAC" > "$PG/$IFACE"
    echo "src_mac $SRC_MAC" > "$PG/$IFACE"
    echo "dst $DST_IP" > "$PG/$IFACE"
    echo "dst_min $DST_IP" > "$PG/$IFACE"
    echo "dst_max $DST_IP" > "$PG/$IFACE"
    echo "udp_dst_min $UDP_PORT" > "$PG/$IFACE"
    echo "udp_dst_max $UDP_PORT" > "$PG/$IFACE"

    echo start > "$PG/pgctrl"

To stop:

    echo stop > /proc/net/pktgen/pgctrl

The following patches attempt to address this problem by adding
backpressure at key exhaustion-prone locations (packet cache size, ring
restart behavior, ring unpause behavior). With these patches, the victim
VM's system and networking remain responsive throughout the flood.

Tu Dinh (4):
  Cap the size of the receiver PacketCache
  Move __ReceiverRingReturnPacket below ReceiverRingFill
  Conditionally restart the RX ring from packet return
  Avoid requeuing QueueDpc in __ReceiverRingSwizzle

 src/xenvif/receiver.c | 109 +++++++++++++++++++++++-------------------
 1 file changed, 61 insertions(+), 48 deletions(-)

--
2.54.0.windows.1


--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 27 07:59:37 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Jul 2026 07:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1371442.1618958 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woGFL-0004bS-Ho; Mon, 27 Jul 2026 07:59:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1371442.1618958; Mon, 27 Jul 2026 07:59:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woGFL-0004bL-EW; Mon, 27 Jul 2026 07:59:35 +0000
Received: by outflank-mailman (input) for mailman id 1371442;
 Mon, 27 Jul 2026 07:59:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@swg.vates.tech>)
 id 1woGFJ-0004bF-Sp
 for win-pv-devel@lists.xenproject.org; Mon, 27 Jul 2026 07:59:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woGFJ-00AJnE-6B
 for win-pv-devel@lists.xenproject.org; Mon, 27 Jul 2026 09:59:33 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@swg.vates.tech>)
 id 6a670fdb-2eae-0a2a0a5409dd-0a2a4504c69e-32
 for <win-pv-devel@lists.xenproject.org>; Mon, 27 Jul 2026 09:59:32 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@swg.vates.tech>)
 id 6a670fe4-b57f-0a2a45040019-b9ff1c229fef-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 27 Jul 2026 09:59:32 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa296090e000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 27 Jul 2026 07:59:29 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id DD16D81F0C;
 Mon, 27 Jul 2026 09:59:28 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=A8MhiBQI+09+oUOcrfPFI+zcF6sMwrjN9lTZITvvf3Q=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=otLeNpLPXNH5KKZ8KP1D7sLbrnGcNkOnOIsoL6rgHol8kWGVqgidldmSGqOhfcg6p8xE6axBc
 PjhIzfEgZYz+GYBkpz4LNPSS8Sw7NY4dXncHe0w4c2H23ziMeG9dbamPK0MJM+fVpxAO8EtcJID
 B7W7YwaR/H1ZQilqdrozdyCckGuxV3NZv7818b1sTaE9i3FqZi8ol/gjg3I00TWZbOpPWjWSbuX
 MLuVHBpsfVatFa1N2etD8AtQ18bosgm0wHZ0bOGJGUUJufm49lAxwzObJvkRQTaWvXg6EwfxjyH
 EO/MlOcW2bbA1O6ZwKejEXjmqVRjwBlUIgrje8fxbrjw==
X-Zone-Loop: 48ceaae7f0b5e4fb5b3abe1e36cd0942972a63703d3f
x-campaign-type: default
x-transaction-id: 25fbf88e-ff41-4cb8-81cd-58d0a4a8a4ce
x-swg-uid: 01-3b65dc4a-51c8-45ce-a455-758455e37d73
X-Mailer: Sweego
Message-ID:
 <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
x-swg-bid: 1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH 0/3] Report IP network prefix in XenStore
Date: Mon, 27 Jul 2026 09:59:25 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1380.ee2c6558df1ac61f.19fa29606ef.fa6cedeaa1162508=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785139169007
X-purgate-ID: tlsNG-ebf023/1785139172-518D1B50-37D67434/0/0
X-purgate-type: clean
X-purgate-size: 868

---=Part.1380.ee2c6558df1ac61f.19fa29606ef.fa6cedeaa1162508=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

xenstore-paths=2Epandoc 644ea6f84510 specified a new key "~/attr/vif/
$DEVID/ipv4/$INDEX/prefix" for reporting network prefixes=2E

Resolve this info from MIB_UNICASTIPADDRESS_ROW=2EOnLinkPrefixLength for
reporting=2E

Tu Dinh (3):
  Generalize AddressTable as address structs
  Refactor FrontendDumpIPv4/IPv6Address
  Report IP network prefix in XenStore

 src/xenvif/frontend=2Ec | 208 ++++++++++++++++++++++++++++--------------
 1 file changed, 138 insertions(+), 70 deletions(-)

--
2=2E55=2E0=2Ewindows=2E3


-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.1380.ee2c6558df1ac61f.19fa29606ef.fa6cedeaa1162508=---


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 27 08:00:27 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Jul 2026 08:00:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1371454.1618961 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woGGB-00066Q-3j; Mon, 27 Jul 2026 08:00:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1371454.1618961; Mon, 27 Jul 2026 08:00:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woGGB-00066J-0y; Mon, 27 Jul 2026 08:00:27 +0000
Received: by outflank-mailman (input) for mailman id 1371454;
 Mon, 27 Jul 2026 08:00:25 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d2c5000edb5@swg.vates.tech>)
 id 1woGG9-000667-11
 for win-pv-devel@lists.xenproject.org; Mon, 27 Jul 2026 08:00:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woGG6-000Suc-M1
 for win-pv-devel@lists.xenproject.org; Mon, 27 Jul 2026 10:00:22 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d2c5000edb5@swg.vates.tech>)
 id 6a67100b-5cb7-0a2a0a5109dd-0a2a45038856-44
 for <win-pv-devel@lists.xenproject.org>; Mon, 27 Jul 2026 10:00:22 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d2c5000edb5@swg.vates.tech>)
 id 6a671016-fae8-0a2a45030019-b9ff1c228baf-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 27 Jul 2026 10:00:22 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa296d2c5000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 27 Jul 2026 08:00:21 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id A0E6381C01;
 Mon, 27 Jul 2026 10:00:20 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=oDmqfQsvkXY1LeUuA0LBpGAgROj/3a/qayT9GMtaAu0=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=D6rZi/XqIENjXK4Igh4FK1eTfmB9o2VyiCH9lqHuo5u2nmokjkwEPNRFII1lC9kDCtEjv8IHG
 i0Xki87kKSWrNXuJiEJ3iK6LKcrvLm3WzLlQb/p59Bt1qe8fef0G+cH8t49Kn92uXzZKJfO5+X7
 T4jV5BQqdTi9zw1xUTQojQgb6yrJiRYqHMED/PiK43ncSptU7h3R0Bnw6C39shqtxUu25MNAohO
 MtjQLUIfTpWkK9ASvRj+Qmy7DgtBqRKM/OaGUtgm7l9wtiObw/Dp2D3gc4O4+CrxxBdTuZAJkiL
 5w5CCk8IdR0oGK0JnVuPtKikbbuoejCWX+kNCwSqfvPw==
X-Zone-Loop: 1585a7d5b0fa32731b2976f5e7ef3ffb4a550ac969a6
x-campaign-type: default
x-transaction-id: 1b0a52a5-d201-4cc4-ad7c-f6d7273190e9
x-swg-uid: 01-17cb9b47-43f8-4ea5-a9de-40e5c8f11399
X-Mailer: Sweego
Message-ID:
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d2c5000edb5@vates.tech>
x-swg-bid: 1785139221.8631fc262581453bbf619ec5b2062170.19fa296d2c5000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH 1/3] Generalize AddressTable as address structs
Date: Mon, 27 Jul 2026 10:00:10 +0200
In-Reply-To: <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
References: <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1381.d85dce186a2d4b5d.19fa296d0e8.c10df9f542084b15=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785139220712
X-purgate-ID: tlsNG-33051d/1785139222-76CF84E9-D15C4877/0/0
X-purgate-type: clean
X-purgate-size: 6398

---=Part.1381.d85dce186a2d4b5d.19fa296d0e8.c10df9f542084b15=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

A frontend address may include additional information beyond what a
SOCKADDR_INET contains (e=2Eg=2E address prefixes)=2E

Bring the address table under a struct to allow including extra info for
each address=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/frontend=2Ec | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/src/xenvif/frontend=2Ec b/src/xenvif/frontend=2Ec
index 256b35b=2E=2E4184b14 100644
--- a/src/xenvif/frontend=2Ec
+++ b/src/xenvif/frontend=2Ec
@@ -67,6 +67,10 @@ typedef struct _XENVIF_FRONTEND_HASH {
     ULONG                           Size;
 } XENVIF_FRONTEND_HASH, *PXENVIF_FRONTEND_HASH;
=20
+typedef struct _XENVIF_ADDRESS {
+    SOCKADDR_INET               Address;
+} XENVIF_ADDRESS, *PXENVIF_ADDRESS;
+
 struct _XENVIF_FRONTEND {
     PXENVIF_PDO                 Pdo;
     PCHAR                       Path;
@@ -104,7 +108,7 @@ struct _XENVIF_FRONTEND {
     PXENVIF_THREAD              MibThread;
     CHAR                        Alias[IF_MAX_STRING_SIZE + 1];
     NET_IFINDEX                 InterfaceIndex;
-    PSOCKADDR_INET              AddressTable;
+    PXENVIF_ADDRESS             AddressTable;
     ULONG                       AddressCount;
=20
     XENVIF_FRONTEND_HASH        Hash;
@@ -541,43 +545,47 @@ FrontendInsertAddress(
     )
 {
     ULONG                   Index;
-    PSOCKADDR_INET          Table;
+    PXENVIF_ADDRESS         Table;
     NTSTATUS                status;
=20
     Trace("=3D=3D=3D=3D>\n");
=20
     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        if (Frontend->AddressTable[Index]=2Esi_family !=3D Address->si_fa=
mily)
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        if (Entry->Address=2Esi_family !=3D Address->si_family)
             continue;
=20
         if (Address->si_family =3D=3D AF_INET) {
             if (RtlEqualMemory(&Address->Ipv4=2Esin_addr=2Es_addr,
-                               &Frontend->AddressTable[Index]=2EIpv4=2Esi=
n_addr=2Es_addr,
+                               &Entry->Address=2EIpv4=2Esin_addr=2Es_addr=
,
                                  IPV4_ADDRESS_LENGTH))
                 goto done;
         } else {
             ASSERT3U(Address->si_family, =3D=3D, AF_INET6);
=20
             if (RtlEqualMemory(&Address->Ipv6=2Esin6_addr=2Es6_addr,
-                               &Frontend->AddressTable[Index]=2EIpv6=2Esi=
n6_addr=2Es6_addr,
+                               &Entry->Address=2EIpv6=2Esin6_addr=2Es6_ad=
dr,
                                IPV6_ADDRESS_LENGTH))
                 goto done;
         }
     }
=20
     // We have an address we've not seen before so grow the table
-    Table =3D __FrontendAllocate(sizeof (SOCKADDR_INET) * (Frontend->Addr=
essCount + 1));
+    Table =3D __FrontendAllocate(sizeof (XENVIF_ADDRESS) * (Frontend->Add=
ressCount + 1));
=20
     status =3D STATUS_NO_MEMORY;
     if (Table =3D=3D NULL)
         goto fail1;
=20
-    RtlCopyMemory(Table, Frontend->AddressTable, sizeof (SOCKADDR_INET) *=
 Frontend->AddressCount);
+    RtlCopyMemory(Table,
+                  Frontend->AddressTable,
+                  sizeof (XENVIF_ADDRESS) * Frontend->AddressCount);
=20
     if (Frontend->AddressCount !=3D 0)
         __FrontendFree(Frontend->AddressTable);
=20
-    Table[Frontend->AddressCount++] =3D *Address;
+    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address };
     Frontend->AddressTable =3D Table;
=20
 done:
@@ -819,13 +827,15 @@ FrontendDumpAddressTable(
     IpVersion6Count =3D 0;
=20
     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        switch (Frontend->AddressTable[Index]=2Esi_family) {
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        switch (Entry->Address=2Esi_family) {
         case AF_INET: {
             IPV4_ADDRESS    Address;
             CHAR            Node[sizeof ("ipv4/XXXXXXXXXX")];
=20
             RtlCopyMemory(Address=2EByte,
-                          &Frontend->AddressTable[Index]=2EIpv4=2Esin_add=
r=2Es_addr,
+                          &Entry->Address=2EIpv4=2Esin_addr=2Es_addr,
                           IPV4_ADDRESS_LENGTH);
=20
             status =3D RtlStringCbPrintfA(Node,
@@ -851,7 +861,7 @@ FrontendDumpAddressTable(
             CHAR            Node[sizeof ("ipv6/XXXXXXXXXX")];
=20
             RtlCopyMemory(Address=2EByte,
-                          &Frontend->AddressTable[Index]=2EIpv6=2Esin6_ad=
dr=2Es6_addr,
+                          &Entry->Address=2EIpv6=2Esin6_addr=2Es6_addr,
                           IPV6_ADDRESS_LENGTH);
=20
             status =3D RtlStringCbPrintfA(Node,
@@ -1307,12 +1317,14 @@ FrontendAdvertiseIpAddresses(
     KeAcquireSpinLock(&Frontend->Lock, &Irql);
=20
     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        switch (Frontend->AddressTable[Index]=2Esi_family) {
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        switch (Entry->Address=2Esi_family) {
         case AF_INET: {
             IPV4_ADDRESS    Address;
=20
             RtlCopyMemory(Address=2EByte,
-                          &Frontend->AddressTable[Index]=2EIpv4=2Esin_add=
r=2Es_addr,
+                          &Entry->Address=2EIpv4=2Esin_addr=2Es_addr,
                           IPV4_ADDRESS_LENGTH);
=20
             TransmitterQueueArp(Transmitter, &Address);
@@ -1322,7 +1334,7 @@ FrontendAdvertiseIpAddresses(
             IPV6_ADDRESS    Address;
=20
             RtlCopyMemory(Address=2EByte,
-                          &Frontend->AddressTable[Index]=2EIpv6=2Esin6_ad=
dr=2Es6_addr,
+                          &Entry->Address=2EIpv6=2Esin6_addr=2Es6_addr,
                           IPV6_ADDRESS_LENGTH);
=20
             TransmitterQueueNeighbourAdvertisement(Transmitter, &Address)=
;
--=20
2=2E55=2E0=2Ewindows=2E3



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.1381.d85dce186a2d4b5d.19fa296d0e8.c10df9f542084b15=---


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 27 08:00:27 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Jul 2026 08:00:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1371455.1618968 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woGGB-000673-8s; Mon, 27 Jul 2026 08:00:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1371455.1618968; Mon, 27 Jul 2026 08:00:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woGGB-00066X-2p; Mon, 27 Jul 2026 08:00:27 +0000
Received: by outflank-mailman (input) for mailman id 1371455;
 Mon, 27 Jul 2026 08:00:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d389000edb5@swg.vates.tech>)
 id 1woGG9-000668-AZ
 for win-pv-devel@lists.xenproject.org; Mon, 27 Jul 2026 08:00:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woGG8-007CH0-NX
 for win-pv-devel@lists.xenproject.org; Mon, 27 Jul 2026 10:00:24 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d389000edb5@swg.vates.tech>)
 id 6a671016-bab6-0a2a0a5309dd-0a2a45018488-30
 for <win-pv-devel@lists.xenproject.org>; Mon, 27 Jul 2026 10:00:24 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d389000edb5@swg.vates.tech>)
 id 6a671016-5984-0a2a45010019-b9ff1c1281b1-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 27 Jul 2026 10:00:22 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa296d389000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 27 Jul 2026 08:00:21 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id E030C81FC4;
 Mon, 27 Jul 2026 10:00:20 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=MlXmIk21oJWhW2+tekl8WnguU1zRbSX2TYIXBX/dR84=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=dWwFL/6ZIxZGEMvgNcIawj89BpaVX55Xc0PmHDsTyr1dVzGau1f5WHm4Zf0joAy246z6UofsQ
 SaWpnv6F2RAcG95obS7l5ryZOMgwFJl4gW68bV7VBJzRyqZ1N4nnlZVT4h+BF5G7SrASS6h4+Rq
 3nYOYHQzAjkBlE6nMmCd1hSamEX2z7BlYZ2BJtUjiJc1TCP/r6Vir26iaQK09mJHwvUZp8bv0yZ
 FIFCfF/H9HL77+xXLkA+D4ONqBfSsdwHXt4befm/Z2/ZRTuEcKOqS+ctVvVcko53ANSG6YNZLMO
 pzy50vsQCR7F8+MM4e3U/XhHuVkLYQ60UgrP8V+OoOkg==
X-Zone-Loop: e324e74c2a41d888c55bf9ca2660d625b0f13bdd4f7a
x-campaign-type: default
x-transaction-id: 3f340c0b-5f1a-4ff1-8697-f2b2f0a9afdb
x-swg-uid: 01-f61ed0b7-714c-477f-8292-5eb73cb5f43b
X-Mailer: Sweego
Message-ID:
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d389000edb5@vates.tech>
x-swg-bid: 1785139221.8631fc262581453bbf619ec5b2062170.19fa296d389000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH 2/3] Refactor FrontendDumpIPv4/IPv6Address
Date: Mon, 27 Jul 2026 10:00:11 +0200
In-Reply-To: <20260727080016.284-1-ngoc-tu.dinh@vates.tech>
References: <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
 <20260727080016.284-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1382.5998c211d9c9c28c.19fa296d1ec.e5d5c485c01389d3=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785139220972
X-purgate-ID: tlsNG-d62444/1785139222-BEE60757-9FDC8DC0/0/0
X-purgate-type: clean
X-purgate-size: 8518

---=Part.1382.5998c211d9c9c28c.19fa296d1ec.e5d5c485c01389d3=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Pass the entire PXENVIF_ADDRESS and integer address index to these
functions instead of inlining it into FrontendDumpAddressTable=2E

This lets each dump function decide where to put the xenstore values=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/frontend=2Ec | 118 +++++++++++++++++++++++-------------------
 1 file changed, 64 insertions(+), 54 deletions(-)

diff --git a/src/xenvif/frontend=2Ec b/src/xenvif/frontend=2Ec
index 4184b14=2E=2E481fcee 100644
--- a/src/xenvif/frontend=2Ec
+++ b/src/xenvif/frontend=2Ec
@@ -681,42 +681,80 @@ static NTSTATUS
 FrontendDumpIPv4Address(
     _In_ PXENVIF_FRONTEND           Frontend,
     _In_ PXENBUS_STORE_TRANSACTION  Transaction,
-    _In_ PSTR                       Node,
-    _In_ PIPV4_ADDRESS              Address
+    _In_ ULONG                      AddressIndex,
+    _In_ PXENVIF_ADDRESS            Entry
     )
 {
+    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX")];
+    PIN_ADDR                        Address;
     NTSTATUS                        status;
=20
+    Address =3D &Entry->Address=2EIpv4=2Esin_addr;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv4/%u",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
     status =3D XENBUS_STORE(Printf,
                           &Frontend->StoreInterface,
                           Transaction,
                           __FrontendGetPrefix(Frontend),
                           Node,
                           "%u=2E%u=2E%u=2E%u",
-                          Address->Byte[0],
-                          Address->Byte[1],
-                          Address->Byte[2],
-                          Address->Byte[3]);
-    return status;
+                          Address->S_un=2ES_un_b=2Es_b1,
+                          Address->S_un=2ES_un_b=2Es_b2,
+                          Address->S_un=2ES_un_b=2Es_b3,
+                          Address->S_un=2ES_un_b=2Es_b4);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    status =3D XENBUS_STORE(Printf,
+                          &Frontend->StoreInterface,
+                          Transaction,
+                          __FrontendGetPrefix(Frontend),
+                          Node,
+                          "%u=2E%u=2E%u=2E%u",
+                          Address->S_un=2ES_un_b=2Es_b1,
+                          Address->S_un=2ES_un_b=2Es_b2,
+                          Address->S_un=2ES_un_b=2Es_b3,
+                          Address->S_un=2ES_un_b=2Es_b4);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    return STATUS_SUCCESS;
 }
=20
 static NTSTATUS
 FrontendDumpIPv6Address(
     _In_ PXENVIF_FRONTEND           Frontend,
     _In_ PXENBUS_STORE_TRANSACTION  Transaction,
-    _In_ PSTR                       Node,
-    _In_ PIPV6_ADDRESS              Address
+    _In_ ULONG                      AddressIndex,
+    _In_ PXENVIF_ADDRESS            Entry
     )
 {
+    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX")];
     ULONG                           Index;
     ULONG                           Count;
     ULONG                           ZeroIndex;
     ULONG                           ZeroCount;
+    PIN6_ADDR                       Address;
     NTSTATUS                        status;
=20
+    Address =3D &Entry->Address=2EIpv6=2Esin6_addr;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv6/%u",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
     Count =3D ZeroIndex =3D ZeroCount =3D 0;
     for (Index =3D 0; Index < 8; Index++) {
-        if (Address->Word[Index] =3D=3D 0)
+        if (Address->u=2EWord[Index] =3D=3D 0)
             Count++;
         else
             Count =3D 0;
@@ -746,7 +784,7 @@ FrontendDumpIPv6Address(
                 status =3D RtlStringCchPrintfA(Parts[Index],
                                              sizeof(Parts[Index]),
                                              Index =3D=3D 0 ? "%hx" : ":%=
hx",
-                                             NTOHS(Address->Word[Index]))=
;
+                                             NTOHS(Address->u=2EWord[Inde=
x]));
                 if (!NT_SUCCESS(status))
                     return status;
             }
@@ -773,17 +811,19 @@ FrontendDumpIPv6Address(
                               __FrontendGetPrefix(Frontend),
                               Node,
                               "%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx",
-                              NTOHS(Address->Word[0]),
-                              NTOHS(Address->Word[1]),
-                              NTOHS(Address->Word[2]),
-                              NTOHS(Address->Word[3]),
-                              NTOHS(Address->Word[4]),
-                              NTOHS(Address->Word[5]),
-                              NTOHS(Address->Word[6]),
-                              NTOHS(Address->Word[7]));
+                              NTOHS(Address->u=2EWord[0]),
+                              NTOHS(Address->u=2EWord[1]),
+                              NTOHS(Address->u=2EWord[2]),
+                              NTOHS(Address->u=2EWord[3]),
+                              NTOHS(Address->u=2EWord[4]),
+                              NTOHS(Address->u=2EWord[5]),
+                              NTOHS(Address->u=2EWord[6]),
+                              NTOHS(Address->u=2EWord[7]));
     }
+    if (!NT_SUCCESS(status))
+        return status;
=20
-    return status;
+    return STATUS_SUCCESS;
 }
=20
 static NTSTATUS
@@ -831,25 +871,10 @@ FrontendDumpAddressTable(
=20
         switch (Entry->Address=2Esi_family) {
         case AF_INET: {
-            IPV4_ADDRESS    Address;
-            CHAR            Node[sizeof ("ipv4/XXXXXXXXXX")];
-
-            RtlCopyMemory(Address=2EByte,
-                          &Entry->Address=2EIpv4=2Esin_addr=2Es_addr,
-                          IPV4_ADDRESS_LENGTH);
-
-            status =3D RtlStringCbPrintfA(Node,
-                                        sizeof (Node),
-                                        "ipv4/%u",
-                                        IpVersion4Count);
-            ASSERT(NT_SUCCESS(status));
-            if (!NT_SUCCESS(status))
-                continue;
-
             status =3D FrontendDumpIPv4Address(Frontend,
                                              Transaction,
-                                             Node,
-                                             &Address);
+                                             Index,
+                                             Entry);
             if (!NT_SUCCESS(status))
                 goto fail4;
=20
@@ -857,25 +882,10 @@ FrontendDumpAddressTable(
             break;
         }
         case AF_INET6: {
-            IPV6_ADDRESS    Address;
-            CHAR            Node[sizeof ("ipv6/XXXXXXXXXX")];
-
-            RtlCopyMemory(Address=2EByte,
-                          &Entry->Address=2EIpv6=2Esin6_addr=2Es6_addr,
-                          IPV6_ADDRESS_LENGTH);
-
-            status =3D RtlStringCbPrintfA(Node,
-                                        sizeof (Node),
-                                        "ipv6/%u",
-                                        IpVersion6Count);
-            ASSERT(NT_SUCCESS(status));
-            if (!NT_SUCCESS(status))
-                continue;
-
             status =3D FrontendDumpIPv6Address(Frontend,
                                              Transaction,
-                                             Node,
-                                             &Address);
+                                             Index,
+                                             Entry);
             if (!NT_SUCCESS(status))
                 goto fail4;
=20
--=20
2=2E55=2E0=2Ewindows=2E3



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.1382.5998c211d9c9c28c.19fa296d1ec.e5d5c485c01389d3=---


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 27 08:00:30 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Jul 2026 08:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1371456.1618970 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woGGE-00069l-7a; Mon, 27 Jul 2026 08:00:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1371456.1618970; Mon, 27 Jul 2026 08:00:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woGGE-00069c-4I; Mon, 27 Jul 2026 08:00:30 +0000
Received: by outflank-mailman (input) for mailman id 1371456;
 Mon, 27 Jul 2026 08:00:28 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d459000edb5@swg.vates.tech>)
 id 1woGGC-000695-Ik
 for win-pv-devel@lists.xenproject.org; Mon, 27 Jul 2026 08:00:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woGGB-00D4a6-Eq
 for win-pv-devel@lists.xenproject.org; Mon, 27 Jul 2026 10:00:27 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d459000edb5@swg.vates.tech>)
 id 6a67100a-e002-0a2a0a5209dd-0a2a45028c98-44
 for <win-pv-devel@lists.xenproject.org>; Mon, 27 Jul 2026 10:00:24 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa296d459000edb5@swg.vates.tech>)
 id 6a671016-6ca4-0a2a45020019-b9ff1c2299b3-3
 for <win-pv-devel@lists.xenproject.org>; Mon, 27 Jul 2026 10:00:22 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa296d459000edb5.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 27 Jul 2026 08:00:21 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 1AEE6823EB;
 Mon, 27 Jul 2026 10:00:21 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=hHPn7HoPp5igd0pIdVFeF0v2jKcuQbozVO4FbNheNSA=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=apH5ZR2tA1JLXP475rXTw92OVPR+1hIp48ekZ9AWzlJ9er3Cw45/MX0Rwhe4hFyAyl0G8fz6V
 TQI/OrUp0v/ILNin8PaywJOXretO/N8jBiC59GB6s3SlL811X7S7CKMlUfIYbX3/tNHFAAIFoEN
 9+iDLXLj0YmvzYUiTvSazJ7quWlppsj9JEzsGzqxUXXe94rgzblFBC1NW0VJnCVLo41NXSIGPEj
 qzq2RojrjdnQAdpZV28XVircp4ZZYYFkkUXKVfXgCNJwujXpNuaDpgNEmqPCpARLe3b7HrmtuzF
 QDs6hlvHyIZ6tv2ewGQhyyudLs2zoCKjOaC3JeiEkp3A==
X-Zone-Loop: a189f50eaf0d8c795a4582ae5a1297e1d5913c165556
x-campaign-type: default
x-transaction-id: 3b874841-6dcf-44c5-8d9c-abaa0fa9ac54
x-swg-uid: 01-f3168b7e-2caa-4615-a3a8-08924bf5c4ae
X-Mailer: Sweego
Message-ID:
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d459000edb5@vates.tech>
x-swg-bid: 1785139221.8631fc262581453bbf619ec5b2062170.19fa296d459000edb5
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH 3/3] Report IP network prefix in XenStore
Date: Mon, 27 Jul 2026 10:00:12 +0200
In-Reply-To: <20260727080016.284-1-ngoc-tu.dinh@vates.tech>
References: <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
 <20260727080016.284-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1383.ce69348c2e8281aa.19fa296d2ab.87194d95fb389b10=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785139221163
X-purgate-ID: tlsNG-720697/1785139222-F04A62AC-66C6B266/0/0
X-purgate-type: clean
X-purgate-size: 5566

---=Part.1383.ce69348c2e8281aa.19fa296d2ab.87194d95fb389b10=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

xenstore-paths=2Epandoc 644ea6f84510 specified a new key "~/attr/vif/
$DEVID/ipv4/$INDEX/prefix" for reporting network prefixes=2E

Resolve this info from MIB_UNICASTIPADDRESS_ROW=2EOnLinkPrefixLength for
reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/frontend=2Ec | 60 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 53 insertions(+), 7 deletions(-)

diff --git a/src/xenvif/frontend=2Ec b/src/xenvif/frontend=2Ec
index 481fcee=2E=2Ee4d01fc 100644
--- a/src/xenvif/frontend=2Ec
+++ b/src/xenvif/frontend=2Ec
@@ -69,6 +69,7 @@ typedef struct _XENVIF_FRONTEND_HASH {
=20
 typedef struct _XENVIF_ADDRESS {
     SOCKADDR_INET               Address;
+    UINT8                       Prefix;
 } XENVIF_ADDRESS, *PXENVIF_ADDRESS;
=20
 struct _XENVIF_FRONTEND {
@@ -541,7 +542,8 @@ found:
 static NTSTATUS
 FrontendInsertAddress(
     IN  PXENVIF_FRONTEND    Frontend,
-    IN  const SOCKADDR_INET *Address
+    IN  const SOCKADDR_INET *Address,
+    IN  UINT8               Prefix
     )
 {
     ULONG                   Index;
@@ -559,14 +561,16 @@ FrontendInsertAddress(
         if (Address->si_family =3D=3D AF_INET) {
             if (RtlEqualMemory(&Address->Ipv4=2Esin_addr=2Es_addr,
                                &Entry->Address=2EIpv4=2Esin_addr=2Es_addr=
,
-                                 IPV4_ADDRESS_LENGTH))
+                                 IPV4_ADDRESS_LENGTH) &&
+                Prefix =3D=3D Entry->Prefix)
                 goto done;
         } else {
             ASSERT3U(Address->si_family, =3D=3D, AF_INET6);
=20
             if (RtlEqualMemory(&Address->Ipv6=2Esin6_addr=2Es6_addr,
                                &Entry->Address=2EIpv6=2Esin6_addr=2Es6_ad=
dr,
-                               IPV6_ADDRESS_LENGTH))
+                               IPV6_ADDRESS_LENGTH) &&
+                Prefix =3D=3D Entry->Prefix)
                 goto done;
         }
     }
@@ -585,7 +589,7 @@ FrontendInsertAddress(
     if (Frontend->AddressCount !=3D 0)
         __FrontendFree(Frontend->AddressTable);
=20
-    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address };
+    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address, Prefi=
x };
     Frontend->AddressTable =3D Table;
=20
 done:
@@ -627,7 +631,9 @@ FrontendProcessAddressTable(
             Row->Address=2Esi_family !=3D AF_INET6)
             continue;
=20
-        status =3D FrontendInsertAddress(Frontend, &Row->Address);
+        status =3D FrontendInsertAddress(Frontend,
+                                       &Row->Address,
+                                       Row->OnLinkPrefixLength);
         if (!NT_SUCCESS(status))
             goto fail1;
     }
@@ -685,7 +691,7 @@ FrontendDumpIPv4Address(
     _In_ PXENVIF_ADDRESS            Entry
     )
 {
-    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX")];
+    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX/prefix"=
)];
     PIN_ADDR                        Address;
     NTSTATUS                        status;
=20
@@ -724,6 +730,26 @@ FrontendDumpIPv4Address(
     if (!NT_SUCCESS(status))
         return status;
=20
+    if (Entry->Prefix > 32)
+        return STATUS_SUCCESS;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv4/%u/prefix",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    status =3D XENBUS_STORE(Printf,
+                          &Frontend->StoreInterface,
+                          Transaction,
+                          __FrontendGetPrefix(Frontend),
+                          Node,
+                          "%hhu",
+                          Entry->Prefix);
+    if (!NT_SUCCESS(status))
+        return status;
+
     return STATUS_SUCCESS;
 }
=20
@@ -735,7 +761,7 @@ FrontendDumpIPv6Address(
     _In_ PXENVIF_ADDRESS            Entry
     )
 {
-    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX")];
+    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX/prefix"=
)];
     ULONG                           Index;
     ULONG                           Count;
     ULONG                           ZeroIndex;
@@ -823,6 +849,26 @@ FrontendDumpIPv6Address(
     if (!NT_SUCCESS(status))
         return status;
=20
+    if (Entry->Prefix > 128)
+        return STATUS_SUCCESS;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv6/%u/prefix",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    status =3D XENBUS_STORE(Printf,
+                          &Frontend->StoreInterface,
+                          Transaction,
+                          __FrontendGetPrefix(Frontend),
+                          Node,
+                          "%hhu",
+                          Entry->Prefix);
+    if (!NT_SUCCESS(status))
+        return status;
+
     return STATUS_SUCCESS;
 }
=20
--=20
2=2E55=2E0=2Ewindows=2E3



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.1383.ce69348c2e8281aa.19fa296d2ab.87194d95fb389b10=---


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 28 14:28:58 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Jul 2026 14:28:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1374466.1621603 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woinh-0007w4-JP; Tue, 28 Jul 2026 14:28:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1374466.1621603; Tue, 28 Jul 2026 14:28:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woinh-0007vx-Gm; Tue, 28 Jul 2026 14:28:57 +0000
Received: by outflank-mailman (input) for mailman id 1374466;
 Tue, 28 Jul 2026 14:28:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1woinf-0007vo-Ce
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 14:28:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woine-00EevY-NQ
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 16:28:54 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a68bca0-5cb7-0a2a0a5109dd-0a2a4506c552-16
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:28:54 +0200
Received: from [52.101.46.38]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a68bca4-195a-0a2a45060019-34652e260750-3
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:28:53 +0200
Received: from SA6PR03MB7760.namprd03.prod.outlook.com (2603:10b6:806:43c::5)
 by CO1PR03MB7817.namprd03.prod.outlook.com (2603:10b6:303:26f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.12; Tue, 28 Jul
 2026 14:28:50 +0000
Received: from SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38]) by SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38%3]) with mapi id 15.21.0245.012; Tue, 28 Jul 2026
 14:28:50 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fOaLZb8IcmAkZodNHYtpA1Wya4cL3vxMb0BUghOOEckJYVX2YA+taCt6S3AkfBPFhXAkrYtS0+zvST7Y8hromaOsa8WSXRotDfM4/ERqq1X4AJYj3SAi4WXbmd1CBYqZ97ExBNE73ZYgVbjdrr3Ijun1rpoxf+KmFDBW46xwJ5lLZ9ncVOqdtmudt5JFzbpw4EqAx5IvG2a/6xDFHFmWQPDifwwe6/pfUZDdnqAwcUv6szes5PBlJ0HnpjWYT+43QKRxRtzSykl8JrY5RYMGUv39Lvlu1h37FXgmQaqHKTs4FwTLFz437VAqam5W93k5LPKAEy4wwi8XwNkU1UxTVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q3nYQf4xHcG2V2bVhN92M8ak8+QqAzbrFc63vX8Zvhw=;
 b=Xxfw3IDIqUYMdlch1QsgqUsI9/uUoSBq5igKM4YAocFbQZFx+BSY0230wrkI4Dcyx2yeiCHVAcIo/SJX9FQCHI/9+/Ut50JabRNbRyx1ibP46q/RQrNtEO7efQ8ryCjeO6QXtGHxN3mJ8aepfYp99KSoFKMUAGhj8WpIQKxEzK2TXXpt3ONU9Kczhu+ZYp7RDbl+cabjgMok3Ct0FuSBnPhLeZ1VYs9b/tKdSuWFeVu2Vz68L5udKXGhmhLdmMAWgNpfdnPJ7mBEgOhxSP/1zF9FStYMFUzGjnmdpxmIYyvxCeAyOgnrYqwCB6HqUPXkA+Uw50gvS6c00qxOBczjGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Q3nYQf4xHcG2V2bVhN92M8ak8+QqAzbrFc63vX8Zvhw=;
 b=wX2ZtDYYp+OC70KwJ0a3Krpyk8JzDU2rT4DLpAcHWIebCsoGkfCmrWb+UQzOAxABXttQpEVNHVCrU2SmgsQ+2eCgSaSWiWtcYAgrCfmuQO61zr2DH3iLbMab8q+gcx1FStVST9V4c1I6iaO+QyFp7/aCCgyI/FNcDLI91ERjl9A=
From: Owen Smith <owen.smith@citrix.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/3] Refactor FrontendDumpIPv4/IPv6Address
Thread-Topic: [PATCH 2/3] Refactor FrontendDumpIPv4/IPv6Address
Thread-Index: AQHdHZ4CmAkF5HWXmk+OuKZkMA5XdLaC/r+c
Date: Tue, 28 Jul 2026 14:28:50 +0000
Message-ID:
 <SA6PR03MB77609C7E491E96892AA6473BFECB2@SA6PR03MB7760.namprd03.prod.outlook.com>
References:
 <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
 <20260727080016.284-1-ngoc-tu.dinh@vates.tech>
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d389000edb5@vates.tech>
In-Reply-To:
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d389000edb5@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR03MB7760:EE_|CO1PR03MB7817:EE_
x-ms-office365-filtering-correlation-id: d69c25b7-07e3-489c-f439-08deecb48b04
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|23010399003|38070700021|6133799003|56012099006|11063799006|4143699003|10067099003|22082099003|18002099003;
x-microsoft-antispam-message-info:
 QUPPzVAjCJfF5qnljErKGhywLbTsE0XVokzoNxdDdL2Fo5rQ9Pl7Qe9dpuVSFeQhwGktRdyD9Idrbadw8JyP1GsqtQjN5ifKtQHUSgStK9Y4EPDauVfYNr80JymWt8hCA7MqD3nZvx7YM+uUFOH0g6mZ25E6HRYsaQ3q+nS/1qPii8EtvVZSYazm31cmnZLdPYpKzmkku+DrMRAASFEuWsBidSp8uTf2QQTihRNIPfRKxBFdIsoM2br5UkdlqwMbdjVNQkIUvwdsaioTiQP2aJQdxm4g0sBCiQIJwF8bG49FUkeeQahv3+bERqPZQEtYy6/UUbDgIMXLvT9aVMiZluvsNiQkkUzMFR+1N6VeOgAV6tln4+3M42co8gCr/tJiXSbEF9wrX4rNMuVqCv9gxQf7nLu6j+dJeE+XHqlcN5NQWqPPWFOlObeUpgdw1aiNbBDWtAbh/eg4Hfwo/DEgqikxgXTe3pJ5TnGKIUix/PEOdSgvdafeu1X4ku1JD8is2s2NGGjbHzC9+ZMVbTxo+l/0n4577oMLbGvs44sx1dE530yzOmxN+XEblFDShV2CTB4EWAW3Uh05SMbfR+O4hnzP3MflE1UIx2nqcqjyp7X7p9mdrGSelKtk3iL0ua5qgfqzJzjBEFGBuwOH3+hpIXEQahXeCytdfZmE9pCbVtYr1dDaAcbqlSyMhpGF1nTuUpgbXadSYEzqZIWNcaWKQw==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA6PR03MB7760.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(23010399003)(38070700021)(6133799003)(56012099006)(11063799006)(4143699003)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?5I1+MmuGrBh5DW1ErD2ahj7V+xcP1+z7dBmgxBx1pwno+3vn8LNzohmPCh?=
 =?iso-8859-1?Q?Bk6VV5eVpOVKcCYBFBok5g1vWLlyLa8msPLkcLgpWwAZpboOwBJ9ghyNBi?=
 =?iso-8859-1?Q?D464epE5Oc+Kwr9SlG5Noxz+C55O5eF2TfT9A0+1TyqVwisTw0a27XaBs0?=
 =?iso-8859-1?Q?r55IncvpaZnvIhtXenCOWp30bAbwvFBE9QwSHvDvLox6L43nGneYl6eedK?=
 =?iso-8859-1?Q?ka+NpuGrHnX4taaWTfrQi7NOUGkCUaINMy4Q6h2SWMumM9QQ6nG9wNmn+l?=
 =?iso-8859-1?Q?gCpKHgx8HmnY6Ua+LfpjkEZvzQI68GxsgOUDNAA6Ag43y7RiZO0G4dB55Y?=
 =?iso-8859-1?Q?JpYxzQHMwYCHLcPYofKuGQKiKCU0Q/WcZLZfAO/7gdToouym35pKmnSf2V?=
 =?iso-8859-1?Q?nTAjHN3fdbQmdcDlPuhMsCz6MPS7TiCDo7Y5XknjC/O1HnE6sNgZP8hKFH?=
 =?iso-8859-1?Q?xGi9B1G+AQCr8cr65PMK0hDFIW8GBK99Cw+V1h66K+VqPPynw6Vu+StRc2?=
 =?iso-8859-1?Q?VtYeGP7vqVBUTPst5CyjGzxiYEg+wVcNgIr1mHoiMx8bSrncYwGspBqRe0?=
 =?iso-8859-1?Q?/+u+ZYEhFY8XhFG0kFxnBEW45NOpj887VB8oDI5nrZXA+rXjoyohG4Ysyu?=
 =?iso-8859-1?Q?ZKgVggzYYd21HW6vjomMqbmdBa0L4E4PHqw7IowWiysGeNL+KZRfWsyNCO?=
 =?iso-8859-1?Q?yjypWHNXsVW5w5S/dJHBj4KAiaKAdIQYFxA1k/459OKicF4zMfgV4Llq7n?=
 =?iso-8859-1?Q?BYsnUI/xGxLRHcnKQmoWfmdADEMvc9fh4zbxKQ/xZQW5h0THOdpmr+BJA+?=
 =?iso-8859-1?Q?Hv1IUJEdEYIOo3rw7cUjnk8BUIjqLXNOxzuV9FT04KR4V9c4FrjNWskpFt?=
 =?iso-8859-1?Q?gI3GCLCL5NuhpbEyCaL9OVZB94yoLVPp7CZmxZkZwwMkg2N7zCgdq3Xe+p?=
 =?iso-8859-1?Q?Wstudk52WYYFj5JJ+tHyDGCS8s2VvUo/SPZ1lHFc+s1Rf68TVs7Dt2LsHp?=
 =?iso-8859-1?Q?xFckPq167ZAyOVFxl6Q1N9gkx5FTYOoPWkicvLa8zfzbHrXQ7sfWuXIin3?=
 =?iso-8859-1?Q?heSLo6dh5P+wZbt51ZNjLvgmc+fTsyOWVuf6+bMOu9F8dASy8p9p6IRfmp?=
 =?iso-8859-1?Q?er5361oQXAKW6DjCzDM1aaAr92g55SyUNPsSAJfitmm/loIwgv7r6MIX8Z?=
 =?iso-8859-1?Q?BrI9GNFhX4KiLAerZ1WqcwYzrus8lRuy9xZQIJStP6U4Xh/GxIP1GUtAKW?=
 =?iso-8859-1?Q?GFi4nFqs3NgH9B1L9LKlNmLhN2cIbEIzNRo9I2oM4nkaIogIvsFi+q28/K?=
 =?iso-8859-1?Q?2xEpu6S8fNy7w2PAUzAowUkeBjcW8d1GYGsumvLcqM5MFkvIZ86gtKmDxR?=
 =?iso-8859-1?Q?CWMO7MLNxLmma6SZ1oTTGqHriKwIK8FMiM6fChdtUlYxvYovRC1uIE+JMW?=
 =?iso-8859-1?Q?iny01UZqzRN4qKzI00ayzCt/EUbgstgGwlbVk9FSm9ybULtIYdfsuSf8Z8?=
 =?iso-8859-1?Q?FmurmcAdcVTEFfaF15obuL2RnANfgShmGV5NYG4a32b5/8s36HA4/46ZFD?=
 =?iso-8859-1?Q?Bh3DNNNBACvJ1sbxpqdhtIsGwErONF+Ag0zPvAyldiNZUtxRaJ2MdnRhSD?=
 =?iso-8859-1?Q?HRie1GVDpytkZwWyyJxr2S3mNgJBkcqAm1Lu3hOVpKqpKOpmZIBTLCtMKk?=
 =?iso-8859-1?Q?iL8K8yaync/V0ggRFBQpJsb574ECZK++qMj8rB6H0thCQ3ukTkBBY6u5Aj?=
 =?iso-8859-1?Q?RRfkauRyVL3I5hc5a7LoD6bTGWr9LrtBUdagLOiSkd0NhV?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR03MB7760.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d69c25b7-07e3-489c-f439-08deecb48b04
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jul 2026 14:28:50.3398
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5B6fsMFtqy0jpYH0KEHlyE58ugVFx4xRjLCFvdzfszVzYhTJ3UDq3C8jzezr31XVnaIcpzS46x5hi/ZirJrxnw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7817
X-purgate-ID: tlsNG-16d1c6/1785248934-F7ECC77B-063C704A/0/0
X-purgate-type: clean
X-purgate-size: 2745

Questions inline.=0A=
=0A=
=0A=
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c=0A=
> index 4184b14..481fcee 100644=0A=
> --- a/src/xenvif/frontend.c=0A=
> +++ b/src/xenvif/frontend.c=0A=
> @@ -681,42 +681,80 @@ static NTSTATUS=0A=
>  FrontendDumpIPv4Address(=0A=
>      _In_ PXENVIF_FRONTEND           Frontend,=0A=
>      _In_ PXENBUS_STORE_TRANSACTION  Transaction,=0A=
> -    _In_ PSTR                       Node,=0A=
> -    _In_ PIPV4_ADDRESS              Address=0A=
> +    _In_ ULONG                      AddressIndex,=0A=
> +    _In_ PXENVIF_ADDRESS            Entry=0A=
>      )=0A=
>  {=0A=
> +    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX")];=0A=
> +    PIN_ADDR                        Address;=0A=
>      NTSTATUS                        status;=0A=
> =0A=
> +    Address =3D &Entry->Address.Ipv4.sin_addr;=0A=
> +=0A=
> +    status =3D RtlStringCbPrintfA(Node,=0A=
> +                                sizeof (Node),=0A=
> +                                "ipv4/%u",=0A=
> +                                AddressIndex);=0A=
> +    if (!NT_SUCCESS(status))=0A=
> +        return status;=0A=
> +=0A=
>      status =3D XENBUS_STORE(Printf,=0A=
>                            &Frontend->StoreInterface,=0A=
>                            Transaction,=0A=
>                            __FrontendGetPrefix(Frontend),=0A=
>                            Node,=0A=
>                            "%u.%u.%u.%u",=0A=
> -                          Address->Byte[0],=0A=
> -                          Address->Byte[1],=0A=
> -                          Address->Byte[2],=0A=
> -                          Address->Byte[3]);=0A=
> -    return status;=0A=
> +                          Address->S_un.S_un_b.s_b1,=0A=
> +                          Address->S_un.S_un_b.s_b2,=0A=
> +                          Address->S_un.S_un_b.s_b3,=0A=
> +                          Address->S_un.S_un_b.s_b4);=0A=
> +    if (!NT_SUCCESS(status))=0A=
> +        return status;=0A=
> +=0A=
> +    status =3D XENBUS_STORE(Printf,=0A=
> +                          &Frontend->StoreInterface,=0A=
> +                          Transaction,=0A=
> +                          __FrontendGetPrefix(Frontend),=0A=
> +                          Node,=0A=
> +                          "%u.%u.%u.%u",=0A=
> +                          Address->S_un.S_un_b.s_b1,=0A=
> +                          Address->S_un.S_un_b.s_b2,=0A=
> +                          Address->S_un.S_un_b.s_b3,=0A=
> +                          Address->S_un.S_un_b.s_b4);=0A=
> +    if (!NT_SUCCESS(status))=0A=
> +        return status;=0A=
> +=0A=
=0A=
This looks like its dumping the IPv4 address twice=0A=
=0A=
=0A=
Owen=


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 28 14:30:11 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Jul 2026 14:30:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1374468.1621606 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woios-0000XE-NE; Tue, 28 Jul 2026 14:30:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1374468.1621606; Tue, 28 Jul 2026 14:30:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woios-0000X7-Km; Tue, 28 Jul 2026 14:30:10 +0000
Received: by outflank-mailman (input) for mailman id 1374468;
 Tue, 28 Jul 2026 14:30:08 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa921f6de000e099@swg.vates.tech>)
 id 1woioq-0000T3-Kr
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 14:30:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woiop-00BetK-JL
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 16:30:07 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa921f6de000e099@swg.vates.tech>)
 id 6a68bcec-e002-0a2a0a5209dd-0a2a4504df7a-10
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:30:07 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa921f6de000e099@swg.vates.tech>)
 id 6a68bcee-b57f-0a2a45040019-b9ff1c129533-3
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:30:07 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa921f6de000e099.002 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 28 Jul 2026 14:30:03 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id A5CA683206;
 Tue, 28 Jul 2026 16:30:02 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=yyQ+vOA57+kxq/ELiUimsugH7+XPt8gXc20qB362Q+U=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=NO4of2NIjazwPGNMw63ibT6ebuWUZby0cwCmaOOE0h0DLoqeAoh+RI6ri5q+i4NIEcYI09CTc
 L2HiF32lS3T9z2UVTxljCucyPNbklJTH0EBXbk+9J5hpXx07iWiBwVah4lqTkgdsygcFJKW1RHG
 qvM1CJJh5oOQPjKTiBJViEYsqErbYfGJetzx/EtVkR0xsyj80X1DufI89CTgFUadQjFnEh/40Q7
 qXV7H7xzmWD43pHQVt7dvlDXzOzDeq9x7lkz3qDg8FX8bvL5Ui8hZlSvd94Jq+Kww6vOhhouqZm
 fAHVOzglBOg0bRrGYKpUhAB8gspvlO/B9kJ5eJk3YKeg==
X-Zone-Loop: 64c3b1b6fc617eccfd42ae0696a74e582b065123463a
x-campaign-type: default
x-transaction-id: f4e452e2-d3e4-4717-96fd-0a62ba31a148
x-swg-uid: 01-51ad78fb-cde2-40ad-a5b2-f2ae374cc742
X-Mailer: Sweego
Message-ID:
 <1785249003.8631fc262581453bbf619ec5b2062170.19fa921f6de000e099@vates.tech>
x-swg-bid: 1785249003.8631fc262581453bbf619ec5b2062170.19fa921f6de000e099
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Tue, 28 Jul 2026 16:30:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] Refactor FrontendDumpIPv4/IPv6Address
To: Owen Smith <owen.smith@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
 <20260727080016.284-1-ngoc-tu.dinh@vates.tech>
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d389000edb5@vates.tech>
 <SA6PR03MB77609C7E491E96892AA6473BFECB2@SA6PR03MB7760.namprd03.prod.outlook.com>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <SA6PR03MB77609C7E491E96892AA6473BFECB2@SA6PR03MB7760.namprd03.prod.outlook.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1594.52ae87fa451b621a.19fa921f4e5.b7fa0a348f0f38d6=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785249002726
X-purgate-ID: tlsNG-ebf023/1785249007-534C3B50-6E920B70/0/0
X-purgate-type: clean
X-purgate-size: 3080

---=Part.1594.52ae87fa451b621a.19fa921f4e5.b7fa0a348f0f38d6=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 28/07/2026 16:29, Owen Smith wrote:
> Questions inline=2E
>=20
>=20
>> diff --git a/src/xenvif/frontend=2Ec b/src/xenvif/frontend=2Ec
>> index 4184b14=2E=2E481fcee 100644
>> --- a/src/xenvif/frontend=2Ec
>> +++ b/src/xenvif/frontend=2Ec
>> @@ -681,42 +681,80 @@ static NTSTATUS
>>   FrontendDumpIPv4Address(
>>       _In_ PXENVIF_FRONTEND           Frontend,
>>       _In_ PXENBUS_STORE_TRANSACTION  Transaction,
>> -    _In_ PSTR                       Node,
>> -    _In_ PIPV4_ADDRESS              Address
>> +    _In_ ULONG                      AddressIndex,
>> +    _In_ PXENVIF_ADDRESS            Entry
>>       )
>>   {
>> +    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX")];
>> +    PIN_ADDR                        Address;
>>       NTSTATUS                        status;
>>
>> +    Address =3D &Entry->Address=2EIpv4=2Esin_addr;
>> +
>> +    status =3D RtlStringCbPrintfA(Node,
>> +                                sizeof (Node),
>> +                                "ipv4/%u",
>> +                                AddressIndex);
>> +    if (!NT_SUCCESS(status))
>> +        return status;
>> +
>>       status =3D XENBUS_STORE(Printf,
>>                             &Frontend->StoreInterface,
>>                             Transaction,
>>                             __FrontendGetPrefix(Frontend),
>>                             Node,
>>                             "%u=2E%u=2E%u=2E%u",
>> -                          Address->Byte[0],
>> -                          Address->Byte[1],
>> -                          Address->Byte[2],
>> -                          Address->Byte[3]);
>> -    return status;
>> +                          Address->S_un=2ES_un_b=2Es_b1,
>> +                          Address->S_un=2ES_un_b=2Es_b2,
>> +                          Address->S_un=2ES_un_b=2Es_b3,
>> +                          Address->S_un=2ES_un_b=2Es_b4);
>> +    if (!NT_SUCCESS(status))
>> +        return status;
>> +
>> +    status =3D XENBUS_STORE(Printf,
>> +                          &Frontend->StoreInterface,
>> +                          Transaction,
>> +                          __FrontendGetPrefix(Frontend),
>> +                          Node,
>> +                          "%u=2E%u=2E%u=2E%u",
>> +                          Address->S_un=2ES_un_b=2Es_b1,
>> +                          Address->S_un=2ES_un_b=2Es_b2,
>> +                          Address->S_un=2ES_un_b=2Es_b3,
>> +                          Address->S_un=2ES_un_b=2Es_b4);
>> +    if (!NT_SUCCESS(status))
>> +        return status;
>> +
>=20
> This looks like its dumping the IPv4 address twice

Oops yes, it's a copy paste error=2E I'll fix it=2E

>=20
>=20
> Owen



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.1594.52ae87fa451b621a.19fa921f4e5.b7fa0a348f0f38d6=---


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 28 14:31:07 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Jul 2026 14:31:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1374471.1621610 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woipn-0000cm-Qi; Tue, 28 Jul 2026 14:31:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1374471.1621610; Tue, 28 Jul 2026 14:31:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woipn-0000cf-O3; Tue, 28 Jul 2026 14:31:07 +0000
Received: by outflank-mailman (input) for mailman id 1374471;
 Tue, 28 Jul 2026 14:31:05 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1woipl-0000cQ-Nk
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 14:31:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woipk-007OpA-Su
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 16:31:04 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a68bd28-2eae-0a2a0a5409dd-0a2a4506cad0-0
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:31:04 +0200
Received: from [52.101.52.13]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a68bd27-195a-0a2a45060019-3465340d2698-3
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:31:04 +0200
Received: from SA6PR03MB7760.namprd03.prod.outlook.com (2603:10b6:806:43c::5)
 by CH5PR03MB7936.namprd03.prod.outlook.com (2603:10b6:610:212::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.12; Tue, 28 Jul
 2026 14:31:00 +0000
Received: from SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38]) by SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38%3]) with mapi id 15.21.0245.012; Tue, 28 Jul 2026
 14:31:00 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RjG0bh2W6NyR1tYxuHy8QCi85OhkPVpP1je9DsC1or7sqTvnZq309om85lUifHczYIcoXpV/37xS6lfRpLYoOytzr60D9d2Jj/+nh0MsM3wZPfpkqf8kxYT89MPyJ8kezVwyR/4mvjfTS6uUTrtotXkD+ZV4t8AfMEKnZJrrl3q9YFOJaS7eG7nMYbBov4gfSJcqqvYZfDMISjkiOUZlkzaZ2COOl+M9vo+vrxSpStrMOaYuKBmoKWa97wZGrciu/8SVp4pZ+8ByaRUVizoNA+vars9pCo2/YEDiS5L1DW7zv+ig/rhxgBvhPcJ7SXsGagkbp/67yb8qXRKfL67OBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8E1QZMcifdldddOcMJ2P7Worq6ozpgv8eP8JM59UZJs=;
 b=AYWqYC7mrkssYGOLfIX2wtmoDH2qlHD6MP2F1vWVoeinUCFw3Ul4HPT97rJ4UlzlTAgdAipBDoK/YK5NXumpDjAvamTY1/JZvMLjq+tkJ2Dk48zA6I+ZMkO4c844o5hmzIyVy+AmnDDSTwsMy36M2R2R1y30v9Bs0YZS1H47fU2hED8nqMjsjQyHQyCq6Qc/voohw89z05Zo/0+8KTkLM/ttgyxzq3N0FzSocNRx9iROWADsDdprtArDmTfWA0/5HvWE7iV6QS7oFfjX/7UF92R0vQFRtghWRDo6ct5W6tPGvoTcL0y2pis10e1inUIuo92+7vm7ieOkdOm9TEcSEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8E1QZMcifdldddOcMJ2P7Worq6ozpgv8eP8JM59UZJs=;
 b=QJiUku8TZ17uUM+X3SRYejrc500X9Qc61dzx7wrjbc5MFPkWABH5TPzeqpk1AUR/CCskCthw/4nFKCKp6KT8zmVeaPTBcoP+l/S3NEWU2UkiO7noxztC4gQwCM9kdAwTq06Rhe8DsrvlhYSg7nh8C8YmIlDiJc9i9hEhBxhVo50=
From: Owen Smith <owen.smith@citrix.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: Re: [PATCH 3/3] Report IP network prefix in XenStore
Thread-Topic: [PATCH 3/3] Report IP network prefix in XenStore
Thread-Index: AQHdHZ4EcgWqMaRQIkKOXcCsgtpCBraC/6yE
Date: Tue, 28 Jul 2026 14:31:00 +0000
Message-ID:
 <SA6PR03MB77606D3EDD708E8BC417C25EFECB2@SA6PR03MB7760.namprd03.prod.outlook.com>
References:
 <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
 <20260727080016.284-1-ngoc-tu.dinh@vates.tech>
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d459000edb5@vates.tech>
In-Reply-To:
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d459000edb5@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR03MB7760:EE_|CH5PR03MB7936:EE_
x-ms-office365-filtering-correlation-id: 83950183-0c6b-46ad-6891-08deecb4d8c8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|23010399003|376014|38070700021|56012099006|11063799006|10067099003|4143699003|6133799003|18002099003|22082099003;
x-microsoft-antispam-message-info:
 fTwFb8WYPKQ7xg8bO6O3hFJIaQSq96kbfTG/10BhXIxpybsXSQxN32xfdjBsdmC25yqPdzXvx6Z3021Z1x2ThmCefnTFDdsNzf3Lj5cKIaQpCOZj+vxRQFvFkmRyokccwi6M2YmUv9kqJ+f/OcBvVTmFUX9pT4Ia2HdXQQtIcBe7sQr5JTEVqZUpelrNXNsBL8oAPeJqDH3+Uzr3log01SLVuDa5ClS+7UUD46k3hGAM8VFPAJfTOWRGvVOD9K0VfpMY41VUU8pxpB4LfmrGFtHFQAPnTOP5/iHChYKxDmMrkXTreifgaVS9u0Ke6ftxPjuh4FZSGJlHBioeeDiX+kxcL/uvI8gQK9xlMAKBCtZc8RGfaWpRqPyd5L+qi5AfWeXiNt+prHmMUvUOgsM6nF2njLlzxXMetkFAXtEjG7dr+cJ0F1WU2FPCoKn6YHfq+rcEaTPV3DohfD3gRhJYdooxCerlwvzk0Gh/a8L4wkI7lMF+o17JBs9HnA+4StmqvQUaxwyxJEAQSjTApsWivIB7CDA9CeqR5pDznDJmyJ1Tuq9H1qRu51AjGizGTaUgk3y0M610yHyKtGW/90GDNkC3P8+Qx4JgZvr3xmO3QUS+Y5iSA8bBQlt1ozaU4+IBlN9LP8u2pO/V1HIi4WHtGkX3ZU3KlF9bHAKe1cd37atOI1CUdaLMm19cgRYmBh9LApa+2f2P2hM4l3jHriDG7mXfag9omerjZkWNbTLuLWA=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA6PR03MB7760.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(376014)(38070700021)(56012099006)(11063799006)(10067099003)(4143699003)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Bi3aBdTu8lGcTrPaBY0StsrlbIfaekW80J3jFBky1Ni4H2kbmP1vn88BTB?=
 =?iso-8859-1?Q?uX32AFSV+vqqHirrfoYyB4BTDkyM+4xRheTNL4SxBDeUYm8Hemj9CjsJzR?=
 =?iso-8859-1?Q?5mA8uwxbNhhB4s5s98Rr6F9pTKduKeXjxvjtxdzQoLfc168NGIUwaNBEqN?=
 =?iso-8859-1?Q?PzQtEQJmLSXZmic4ZHXnvX0N+HAZhBFjj28/AvfSb8hMpgS4pV08BAzTup?=
 =?iso-8859-1?Q?JfbLHv/KgIui3PwHMais/60WOazZvQ6hey/wag6e/04nO9D0ZlNUN0zpwY?=
 =?iso-8859-1?Q?c9Q7NoEbkNn5bbv6O7bWBoIUKqLtbfHtZylqgfk/w64MYzAwU06yy3Ux/y?=
 =?iso-8859-1?Q?A+SCskb/1iO1bp6suwzpKznal7UTyGHRWRd5MtBCmCSZYeRrb50ONZ3Y+T?=
 =?iso-8859-1?Q?IiyWK52DYagiVPbZYz3He2ER9wGLyntk9tij/SlRq5GLkW+UynBWNQZZf3?=
 =?iso-8859-1?Q?kKhhDzyvnSUxLrhTFekXEHT1eCpdM0390ghbOeNnTNSofdu+hfjhrBscWL?=
 =?iso-8859-1?Q?37q1rhVuz8p5HQMdFz27sPwHocAvJYieUy2CkE5He6jWCN5/DJc6EgMOeI?=
 =?iso-8859-1?Q?ZRrHNe+NVzJDmlb7qEVOXbvSE0dest+9nVQBZMvIwM4Dsd3OBg8poze3tw?=
 =?iso-8859-1?Q?lTEFlD8LqLfkXri9eJzfYBmn+ye4kHEdU4KGyyGiLvWxSBgmNDmexV781D?=
 =?iso-8859-1?Q?LD9/o/ehVFdgbQfhBkHGcl+1jbyCr1S4c5iKqi32aq0AuAEOwuEHUgs6ac?=
 =?iso-8859-1?Q?Z3pPpgEOSmqFyMIgIWquFqy1kK1yX4+JWw2JRlVAUyEsG+r7nppWrg1LKX?=
 =?iso-8859-1?Q?rDFNvTpuKXe2gqGTwaIVp8s75XigtFCPFgHySMc9flf/BycuhXRYhRS59o?=
 =?iso-8859-1?Q?5ZhAuFCJW7OwrU/fhbud8/4NKh+XakqlV325I3lcvyz7697Q09Wv91rD+a?=
 =?iso-8859-1?Q?//HleTIwz23JQoyBHk8mN9hp1ZYEUBogYdbw6L2VeqOw0Q5mJoymXQkS6G?=
 =?iso-8859-1?Q?TzyMC1rmG7FwJ/HSteMjZn2hg+/ij0D+itQdvfOK0c2AOLkKxL2TfM6p26?=
 =?iso-8859-1?Q?9EkOzP5xFZvunvxrjQT+Qz5OZr6/IzZbvlg9HhB2q3uS/ukcuOq16OPdch?=
 =?iso-8859-1?Q?kSc71naQ10wsAjrK7VysuYYSixGWCnScRd19BpeU/73nLCTu+JMZyOR5RC?=
 =?iso-8859-1?Q?ZcQ/xhTqKmOy9r5jfClrmDW6Z7XL2ZFrDQTc7VX4vaU3FBhJdNNzVCm/CS?=
 =?iso-8859-1?Q?q0Q4xCvL2r+AUCS6SaRuGlgHUvGhdRAXwIfzq3LUxuQzMFyaFLy3onU8u/?=
 =?iso-8859-1?Q?KHDlnLzYHYfvZJqhdugjmL5PDXoziOmSwo17etZFaQqWgNx18dwH/Pwpk3?=
 =?iso-8859-1?Q?sAHszXjesMLp/QVpYC6DcnlVolc6M2lYm/OaS409nO3uJGPjdZ5qTxEo2j?=
 =?iso-8859-1?Q?Bb4KArHnOq5GT28o3Ht4z1ECrYlvecjqgCOoPeVRjmdAw3wRPEXqjyJGF6?=
 =?iso-8859-1?Q?eCbOHYHRDai6knTiYy2sQzLUWDjRhKvM/5RYWxiiooUHFlgZGZ98SroJJd?=
 =?iso-8859-1?Q?IYB5n1QjlR6IC2jkRmXs5dkie8oXQVTfpa/HE6TSO+elAx1dTHOvSjGHIQ?=
 =?iso-8859-1?Q?24MV0xko2F4lrVowfaya4qZOmaYCLnCqqsCM15bFEKEdYxT3VO55Z9MuEC?=
 =?iso-8859-1?Q?0HSRuxA0VzbBwRV8uA1U7OpzZ/dY1Ywa/2cG9r7VFXjjrKZbVZu6b7jZkn?=
 =?iso-8859-1?Q?E1w/l3QhQSzaLq+BWJRee3rWg8zMHPSP3ZPGkm/gm4mBjw?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR03MB7760.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 83950183-0c6b-46ad-6891-08deecb4d8c8
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jul 2026 14:31:00.7497
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5OpmU7hL03t8zCloqyfqk+xajav6RpwS8o7mWXB1pHUcRGoL4UeWkEi3pGyCMb7JYOuw1qouelITjjk/K4tqIQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7936
X-purgate-ID: tlsNG-16d1c6/1785249064-1F4C977B-114FD73A/0/0
X-purgate-type: clean
X-purgate-size: 1608

=0A=
> @@ -735,7 +761,7 @@ FrontendDumpIPv6Address(=0A=
>      _In_ PXENVIF_ADDRESS            Entry=0A=
>      )=0A=
>  {=0A=
> -    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX")];=0A=
> +    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX/prefix=
")];=0A=
>      ULONG                           Index;=0A=
>      ULONG                           Count;=0A=
>      ULONG                           ZeroIndex;=0A=
> @@ -823,6 +849,26 @@ FrontendDumpIPv6Address(=0A=
>      if (!NT_SUCCESS(status))=0A=
>          return status;=0A=
> =0A=
> +    if (Entry->Prefix > 128)=0A=
> +        return STATUS_SUCCESS;=0A=
> +=0A=
> +    status =3D RtlStringCbPrintfA(Node,=0A=
> +                                sizeof (Node),=0A=
> +                                "ipv6/%u/prefix",=0A=
> +                                AddressIndex);=0A=
> +    if (!NT_SUCCESS(status))=0A=
> +        return status;=0A=
> +=0A=
> +    status =3D XENBUS_STORE(Printf,=0A=
> +                          &Frontend->StoreInterface,=0A=
> +                          Transaction,=0A=
> +                          __FrontendGetPrefix(Frontend),=0A=
> +                          Node,=0A=
> +                          "%hhu",=0A=
> +                          Entry->Prefix);=0A=
> +    if (!NT_SUCCESS(status))=0A=
> +        return status;=0A=
> +=0A=
>      return STATUS_SUCCESS;=0A=
>  }=0A=
=0A=
Is it intentional to potentially leave a 'prefix' value if Prefix <=3D 128?=
=0A=
Should "ipv6/%u/prefix" value be removed if Entry->Prefix <=3D 128=0A=
=0A=
Owen=


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 28 14:37:11 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Jul 2026 14:37:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1374481.1621623 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woivf-0001Nf-GC; Tue, 28 Jul 2026 14:37:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1374481.1621623; Tue, 28 Jul 2026 14:37:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woivf-0001NY-Db; Tue, 28 Jul 2026 14:37:11 +0000
Received: by outflank-mailman (input) for mailman id 1374481;
 Tue, 28 Jul 2026 14:37:11 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa9286fd1000e099@swg.vates.tech>)
 id 1woivf-0001NS-1W
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 14:37:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woive-0038HO-EP
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 16:37:10 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa9286fd1000e099@swg.vates.tech>)
 id 6a68be95-e002-0a2a0a5209dd-0a2a450cbeb0-4
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:37:10 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa9286fd1000e099@swg.vates.tech>)
 id 6a68be95-f479-0a2a450c0019-b9ff1c22acdd-3
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:37:10 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa9286fd1000e099.002 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 28 Jul 2026 14:37:07 +0000
Received: from [192.168.1.61] (155.223.66.37.rev.sfr.net [37.66.223.155])
 (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id E2DF580A8B;
 Tue, 28 Jul 2026 16:37:04 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=K4HQSU9a8HvcQq4FD1EsccGbrEhOE304R4NHwkG1mpY=;
 h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references:feedback-id;
 b=oBRDHSIiHp8USyinS5LFE5HLLlC7M+a6ez+6wKnl3ZNrim0jEq3r4dNaL6bonKvH/2AfaDv0Y
 Za3UOY3g1NFeisctKlwqJkBsr6jcCTjDAbCfbfqncu2q8RVQ2a9XJNZJgCzMthAF04bpRW5kbY7
 lXNiv5869ALR+d2hJZZERB84svZ5iqDsYSl6KecC63ULW+6Tk7DJRiNlGfKZ0/J7S9jC6MqkiCA
 bvUsYStY2i2Bqp4bgiN/Zz8Uen1ejrjuEUNAcqgNapKCtynB967bb73PSquv4TLPexvkGnYgIEa
 uvtKYLOdHkYaHwEOpEqv7B08j4etBFnB2aLWkZdN4qag==
X-Zone-Loop: 16197cd96d6c70fc222d42044ed6a18387c3421ead24
x-campaign-type: default
x-transaction-id: a6b7414f-744b-4b33-9da4-49aff9e98792
x-swg-uid: 01-9aa7cddf-7a2b-47b2-a9e5-368624790263
X-Mailer: Sweego
Message-ID:
 <1785249427.8631fc262581453bbf619ec5b2062170.19fa9286fd1000e099@vates.tech>
x-swg-bid: 1785249427.8631fc262581453bbf619ec5b2062170.19fa9286fd1000e099
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Tue, 28 Jul 2026 16:37:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] Report IP network prefix in XenStore
To: Owen Smith <owen.smith@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <1785139169.8631fc262581453bbf619ec5b2062170.19fa296090e000edb5@vates.tech>
 <20260727080016.284-1-ngoc-tu.dinh@vates.tech>
 <1785139221.8631fc262581453bbf619ec5b2062170.19fa296d459000edb5@vates.tech>
 <SA6PR03MB77606D3EDD708E8BC417C25EFECB2@SA6PR03MB7760.namprd03.prod.outlook.com>
Content-Language: en-US
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
In-Reply-To: <SA6PR03MB77606D3EDD708E8BC417C25EFECB2@SA6PR03MB7760.namprd03.prod.outlook.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1597.3ccf8bffb3a7c55e.19fa928664b.b52de9ebc4e4c976=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785249424971
X-purgate-ID: tlsNG-d25034/1785249430-50F3BA5B-D0582C6F/0/0
X-purgate-type: clean
X-purgate-size: 2167

---=Part.1597.3ccf8bffb3a7c55e.19fa928664b.b52de9ebc4e4c976=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 28/07/2026 16:31, Owen Smith wrote:
>=20
>> @@ -735,7 +761,7 @@ FrontendDumpIPv6Address(
>>       _In_ PXENVIF_ADDRESS            Entry
>>       )
>>   {
>> -    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX")];
>> +    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX/pref=
ix")];
>>       ULONG                           Index;
>>       ULONG                           Count;
>>       ULONG                           ZeroIndex;
>> @@ -823,6 +849,26 @@ FrontendDumpIPv6Address(
>>       if (!NT_SUCCESS(status))
>>           return status;
>>
>> +    if (Entry->Prefix > 128)
>> +        return STATUS_SUCCESS;
>> +
>> +    status =3D RtlStringCbPrintfA(Node,
>> +                                sizeof (Node),
>> +                                "ipv6/%u/prefix",
>> +                                AddressIndex);
>> +    if (!NT_SUCCESS(status))
>> +        return status;
>> +
>> +    status =3D XENBUS_STORE(Printf,
>> +                          &Frontend->StoreInterface,
>> +                          Transaction,
>> +                          __FrontendGetPrefix(Frontend),
>> +                          Node,
>> +                          "%hhu",
>> +                          Entry->Prefix);
>> +    if (!NT_SUCCESS(status))
>> +        return status;
>> +
>>       return STATUS_SUCCESS;
>>   }
>=20
> Is it intentional to potentially leave a 'prefix' value if Prefix <=3D 1=
28?
> Should "ipv6/%u/prefix" value be removed if Entry->Prefix <=3D 128

StoreRemove is called on the entire ipv4/ipv6 key before writing to=20
xenstore:=20
https://github=2Ecom/xcp-ng/win-xenvif/blob/1982ec64f82bc157e6bf15dd19f910=
6ef01a59bd/src/xenvif/frontend=2Ec#L800

So removing the prefix value shouldn't be needed in this case=2E

>=20
> Owen



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.1597.3ccf8bffb3a7c55e.19fa928664b.b52de9ebc4e4c976=---


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 28 14:44:24 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Jul 2026 14:44:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1374484.1621628 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woj2e-0003Mo-0w; Tue, 28 Jul 2026 14:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1374484.1621628; Tue, 28 Jul 2026 14:44:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woj2d-0003Mh-UV; Tue, 28 Jul 2026 14:44:23 +0000
Received: by outflank-mailman (input) for mailman id 1374484;
 Tue, 28 Jul 2026 14:44:23 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@swg.vates.tech>)
 id 1woj2d-0003Mb-C0
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 14:44:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woj2c-00Bh4O-HH
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 16:44:22 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@swg.vates.tech>)
 id 6a68c03f-e002-0a2a0a5209dd-0a2a450c8452-20
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:44:22 +0200
Received: from [185.255.28.18] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@swg.vates.tech>)
 id 6a68c046-f479-0a2a450c0019-b9ff1c128bb5-3
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:44:22 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa92f0fdb000e099.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 28 Jul 2026 14:44:21 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id F1C0281C40;
 Tue, 28 Jul 2026 16:44:20 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=iKs60HIuA6Qe6lTfKBIondhKiBOawnUv84nG41BKEBE=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=eUpW4CJJBeMua5nzjcgEBMCn2FgrhP0P+CC9YKZZsAmdCTo9mwNGIZFgDQqeQR4ZKYjWVppnb
 +UDyiri+na9l4rTETeyWx4JHTg14zH7QIRW7MLuXuQ3is3STUWmtY0f2CJpU1TDaWfVxDiUvqa0
 s254fED2WJm7toIh9/ZLEEwpT2Dou2bFeDNkwLrZWLweoiyb55KMcPmw6v/+jqyLkggLqjJfNPz
 20ZBaszrG2UAP92wJ+wyxPYk4yX/xF8Bv6wcq6B6W7UKFXvk68D0jmP1RdobvifUqS3AFKcDb3e
 e6nepxgJpkfeZAe3AmQjwMhDQ65CBIFVSev8lhT+x3jQ==
X-Zone-Loop: ff9e19ce987ea115b5c0f361b18e30a960e76c0e6d8b
x-campaign-type: default
x-transaction-id: d6679e0b-c13b-4656-97d6-651d645ef18c
x-swg-uid: 01-52b8cb1a-287c-4e28-b5d6-bfba6e088699
X-Mailer: Sweego
Message-ID:
 <1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@vates.tech>
x-swg-bid: 1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 0/3] Report IP network prefix in XenStore
Date: Tue, 28 Jul 2026 16:44:17 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1599.f1f1acd2ada26ecf.19fa92f0de2.9832816379b15d71=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785249861091
X-purgate-ID: tlsNG-d25034/1785249862-766DEA5B-E22D4AF6/0/0
X-purgate-type: clean
X-purgate-size: 921

---=Part.1599.f1f1acd2ada26ecf.19fa92f0de2.9832816379b15d71=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

v2: Fix duplicated writing of the IPv4 address=2E

xenstore-paths=2Epandoc 644ea6f84510 specified a new key "~/attr/vif/
$DEVID/ipv4/$INDEX/prefix" for reporting network prefixes=2E

Resolve this info from MIB_UNICASTIPADDRESS_ROW=2EOnLinkPrefixLength for
reporting=2E

Tu Dinh (3):
  Generalize AddressTable as address structs
  Refactor FrontendDumpIPv4/IPv6Address
  Report IP network prefix in XenStore

 src/xenvif/frontend=2Ec | 195 +++++++++++++++++++++++++++---------------
 1 file changed, 125 insertions(+), 70 deletions(-)

--
2=2E55=2E0=2Ewindows=2E3


-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.1599.f1f1acd2ada26ecf.19fa92f0de2.9832816379b15d71=---


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 28 14:44:49 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Jul 2026 14:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1374486.1621632 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woj33-0003Po-3y; Tue, 28 Jul 2026 14:44:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1374486.1621632; Tue, 28 Jul 2026 14:44:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woj33-0003Ph-0M; Tue, 28 Jul 2026 14:44:49 +0000
Received: by outflank-mailman (input) for mailman id 1374486;
 Tue, 28 Jul 2026 14:44:48 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f6f17000e099@swg.vates.tech>)
 id 1woj32-0003PP-DN
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 14:44:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woj31-00Bh8Y-QQ
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 16:44:47 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f6f17000e099@swg.vates.tech>)
 id 6a68c03f-e002-0a2a0a5209dd-0a2a450c8452-46
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:44:47 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f6f17000e099@swg.vates.tech>)
 id 6a68c05f-f479-0a2a450c0019-b9ff1c2299c7-3
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:44:47 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa92f6f17000e099.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 28 Jul 2026 14:44:45 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 48FD381C40;
 Tue, 28 Jul 2026 16:44:45 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=Wq0D+D7T+xPqI4ukZhTSVd42ogoTZEn3oz9zBpTQ9/U=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=cTb2qqGXYwOwRMxoSft/0/seRvd9JIKVjM1UuHueAFs6ZGczXYwwgGGhU1NvaQ5lnCaVm/fiJ
 bnFkiNNubgSocM9oRMOSWJ1/JElYRo96+IFwnanE+dapwZROr2gp7jyUj3xJFetsb7LuvAiPbVZ
 2ptpWy5Ce458qn2YhVWd5EGFiYOnVtHLFowZPN2w57zCGC4m5WDsG3wmJpMWX63v9u4kS3SUJxA
 vGk6n3YaDmJCRowA11YDU+/CcmN5eYZesDSF33iX3b2Vf4/tU9iek5Q2J6OtpZqzcvCnfHiZTNB
 R/P9Q9guepuIMpRd04Fgcb1FZXcCP05b2O/1sIfdFJFA==
X-Zone-Loop: daf1f33603de0e73576e1893889f2b8732aed69bac38
x-campaign-type: default
x-transaction-id: 432a9b08-a688-4546-8f4e-b395a2d37f9b
x-swg-uid: 01-94d2d599-0dde-409c-a211-a3f1501f73ad
X-Mailer: Sweego
Message-ID:
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f6f17000e099@vates.tech>
x-swg-bid: 1785249886.8631fc262581453bbf619ec5b2062170.19fa92f6f17000e099
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 1/3] Generalize AddressTable as address structs
Date: Tue, 28 Jul 2026 16:44:39 +0200
In-Reply-To: <1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@vates.tech>
References: <1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.159a.a6fe19da50dd1f24.19fa92f6ca7.d3e9b9bc41fac958=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785249885351
X-purgate-ID: tlsNG-d25034/1785249887-01EC2A5B-1C6F1E2B/0/0
X-purgate-type: clean
X-purgate-size: 6398

---=Part.159a.a6fe19da50dd1f24.19fa92f6ca7.d3e9b9bc41fac958=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

A frontend address may include additional information beyond what a
SOCKADDR_INET contains (e=2Eg=2E address prefixes)=2E

Bring the address table under a struct to allow including extra info for
each address=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/frontend=2Ec | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/src/xenvif/frontend=2Ec b/src/xenvif/frontend=2Ec
index 256b35b=2E=2E4184b14 100644
--- a/src/xenvif/frontend=2Ec
+++ b/src/xenvif/frontend=2Ec
@@ -67,6 +67,10 @@ typedef struct _XENVIF_FRONTEND_HASH {
     ULONG                           Size;
 } XENVIF_FRONTEND_HASH, *PXENVIF_FRONTEND_HASH;
=20
+typedef struct _XENVIF_ADDRESS {
+    SOCKADDR_INET               Address;
+} XENVIF_ADDRESS, *PXENVIF_ADDRESS;
+
 struct _XENVIF_FRONTEND {
     PXENVIF_PDO                 Pdo;
     PCHAR                       Path;
@@ -104,7 +108,7 @@ struct _XENVIF_FRONTEND {
     PXENVIF_THREAD              MibThread;
     CHAR                        Alias[IF_MAX_STRING_SIZE + 1];
     NET_IFINDEX                 InterfaceIndex;
-    PSOCKADDR_INET              AddressTable;
+    PXENVIF_ADDRESS             AddressTable;
     ULONG                       AddressCount;
=20
     XENVIF_FRONTEND_HASH        Hash;
@@ -541,43 +545,47 @@ FrontendInsertAddress(
     )
 {
     ULONG                   Index;
-    PSOCKADDR_INET          Table;
+    PXENVIF_ADDRESS         Table;
     NTSTATUS                status;
=20
     Trace("=3D=3D=3D=3D>\n");
=20
     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        if (Frontend->AddressTable[Index]=2Esi_family !=3D Address->si_fa=
mily)
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        if (Entry->Address=2Esi_family !=3D Address->si_family)
             continue;
=20
         if (Address->si_family =3D=3D AF_INET) {
             if (RtlEqualMemory(&Address->Ipv4=2Esin_addr=2Es_addr,
-                               &Frontend->AddressTable[Index]=2EIpv4=2Esi=
n_addr=2Es_addr,
+                               &Entry->Address=2EIpv4=2Esin_addr=2Es_addr=
,
                                  IPV4_ADDRESS_LENGTH))
                 goto done;
         } else {
             ASSERT3U(Address->si_family, =3D=3D, AF_INET6);
=20
             if (RtlEqualMemory(&Address->Ipv6=2Esin6_addr=2Es6_addr,
-                               &Frontend->AddressTable[Index]=2EIpv6=2Esi=
n6_addr=2Es6_addr,
+                               &Entry->Address=2EIpv6=2Esin6_addr=2Es6_ad=
dr,
                                IPV6_ADDRESS_LENGTH))
                 goto done;
         }
     }
=20
     // We have an address we've not seen before so grow the table
-    Table =3D __FrontendAllocate(sizeof (SOCKADDR_INET) * (Frontend->Addr=
essCount + 1));
+    Table =3D __FrontendAllocate(sizeof (XENVIF_ADDRESS) * (Frontend->Add=
ressCount + 1));
=20
     status =3D STATUS_NO_MEMORY;
     if (Table =3D=3D NULL)
         goto fail1;
=20
-    RtlCopyMemory(Table, Frontend->AddressTable, sizeof (SOCKADDR_INET) *=
 Frontend->AddressCount);
+    RtlCopyMemory(Table,
+                  Frontend->AddressTable,
+                  sizeof (XENVIF_ADDRESS) * Frontend->AddressCount);
=20
     if (Frontend->AddressCount !=3D 0)
         __FrontendFree(Frontend->AddressTable);
=20
-    Table[Frontend->AddressCount++] =3D *Address;
+    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address };
     Frontend->AddressTable =3D Table;
=20
 done:
@@ -819,13 +827,15 @@ FrontendDumpAddressTable(
     IpVersion6Count =3D 0;
=20
     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        switch (Frontend->AddressTable[Index]=2Esi_family) {
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        switch (Entry->Address=2Esi_family) {
         case AF_INET: {
             IPV4_ADDRESS    Address;
             CHAR            Node[sizeof ("ipv4/XXXXXXXXXX")];
=20
             RtlCopyMemory(Address=2EByte,
-                          &Frontend->AddressTable[Index]=2EIpv4=2Esin_add=
r=2Es_addr,
+                          &Entry->Address=2EIpv4=2Esin_addr=2Es_addr,
                           IPV4_ADDRESS_LENGTH);
=20
             status =3D RtlStringCbPrintfA(Node,
@@ -851,7 +861,7 @@ FrontendDumpAddressTable(
             CHAR            Node[sizeof ("ipv6/XXXXXXXXXX")];
=20
             RtlCopyMemory(Address=2EByte,
-                          &Frontend->AddressTable[Index]=2EIpv6=2Esin6_ad=
dr=2Es6_addr,
+                          &Entry->Address=2EIpv6=2Esin6_addr=2Es6_addr,
                           IPV6_ADDRESS_LENGTH);
=20
             status =3D RtlStringCbPrintfA(Node,
@@ -1307,12 +1317,14 @@ FrontendAdvertiseIpAddresses(
     KeAcquireSpinLock(&Frontend->Lock, &Irql);
=20
     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        switch (Frontend->AddressTable[Index]=2Esi_family) {
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        switch (Entry->Address=2Esi_family) {
         case AF_INET: {
             IPV4_ADDRESS    Address;
=20
             RtlCopyMemory(Address=2EByte,
-                          &Frontend->AddressTable[Index]=2EIpv4=2Esin_add=
r=2Es_addr,
+                          &Entry->Address=2EIpv4=2Esin_addr=2Es_addr,
                           IPV4_ADDRESS_LENGTH);
=20
             TransmitterQueueArp(Transmitter, &Address);
@@ -1322,7 +1334,7 @@ FrontendAdvertiseIpAddresses(
             IPV6_ADDRESS    Address;
=20
             RtlCopyMemory(Address=2EByte,
-                          &Frontend->AddressTable[Index]=2EIpv6=2Esin6_ad=
dr=2Es6_addr,
+                          &Entry->Address=2EIpv6=2Esin6_addr=2Es6_addr,
                           IPV6_ADDRESS_LENGTH);
=20
             TransmitterQueueNeighbourAdvertisement(Transmitter, &Address)=
;
--=20
2=2E55=2E0=2Ewindows=2E3



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.159a.a6fe19da50dd1f24.19fa92f6ca7.d3e9b9bc41fac958=---


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 28 14:44:49 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Jul 2026 14:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1374488.1621638 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woj33-0003QZ-8Z; Tue, 28 Jul 2026 14:44:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1374488.1621638; Tue, 28 Jul 2026 14:44:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woj33-0003Q7-2x; Tue, 28 Jul 2026 14:44:49 +0000
Received: by outflank-mailman (input) for mailman id 1374488;
 Tue, 28 Jul 2026 14:44:48 +0000
Received: from mx.expurgate.net ([195.190.135.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f70d8000e099@swg.vates.tech>)
 id 1woj32-0003PR-IY
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 14:44:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woj31-00Bh8Y-Vd
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 16:44:47 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f70d8000e099@swg.vates.tech>)
 id 6a68c04d-e002-0a2a0a5209dd-0a2a4509dd6c-14
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:44:47 +0200
Received: from [185.255.28.34] (helo=prod-mta-13-01.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f70d8000e099@swg.vates.tech>)
 id 6a68c05f-be1a-0a2a45090019-b9ff1c228837-3
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:44:47 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-01.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa92f70d8000e099.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 28 Jul 2026 14:44:46 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id B8CD38322E;
 Tue, 28 Jul 2026 16:44:45 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=qa26Ddna8chKaYelEm/RmzCBCHM2kpqQV2SOXmykYVY=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=DVpXKyLhTi+LaH9mU+Pw+NQ/5HhyDLpZEcDPlF/njBEDi/7xtjPONJcQUtruyeEkZyMf04XPc
 19bg7rTuM3NK1JT5h3rki2rscXXxFP623An6g2+MeRavW4DN/S765jNpUxL+KN7JcuE0W6Hl+Gb
 uPPzeI1Xj9H+HbMhnPZYAUGt11Lx+SdDSgF71RPxhrJFN2CFLztJItFLk0LzkBqQIgx5t4JS/Bm
 +1AjNkyCUVgE06JmIKz5u5VsxTCjCC19RcL3o3PE8HTIrj5Du/BwEOd/p6dHsGC/iHvbe2XdfD3
 sifMDlOwghQ8U3JotSt5/DFJe0KHl2oVXQOcYCUgf8Aw==
X-Zone-Loop: 503838d414c4b0a6ff0cc3cb8b4e85534d42292255e1
x-campaign-type: default
x-transaction-id: 1845ed6e-34fd-48f4-a991-39908a70183f
x-swg-uid: 01-580219ee-db28-4f3e-b732-f0ce1d3521ed
X-Mailer: Sweego
Message-ID:
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f70d8000e099@vates.tech>
x-swg-bid: 1785249886.8631fc262581453bbf619ec5b2062170.19fa92f70d8000e099
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 3/3] Report IP network prefix in XenStore
Date: Tue, 28 Jul 2026 16:44:41 +0200
In-Reply-To: <20260728144443.289-1-ngoc-tu.dinh@vates.tech>
References: <1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@vates.tech>
 <20260728144443.289-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.159c.f7cb2263533df53b.19fa92f6e70.e0ef083547dd71bf=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785249885808
X-purgate-ID: tlsNG-bad1c0/1785249887-3A6DA034-C12653EE/0/0
X-purgate-type: clean
X-purgate-size: 5566

---=Part.159c.f7cb2263533df53b.19fa92f6e70.e0ef083547dd71bf=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

xenstore-paths=2Epandoc 644ea6f84510 specified a new key "~/attr/vif/
$DEVID/ipv4/$INDEX/prefix" for reporting network prefixes=2E

Resolve this info from MIB_UNICASTIPADDRESS_ROW=2EOnLinkPrefixLength for
reporting=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/frontend=2Ec | 60 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 53 insertions(+), 7 deletions(-)

diff --git a/src/xenvif/frontend=2Ec b/src/xenvif/frontend=2Ec
index 680a338=2E=2E086d0df 100644
--- a/src/xenvif/frontend=2Ec
+++ b/src/xenvif/frontend=2Ec
@@ -69,6 +69,7 @@ typedef struct _XENVIF_FRONTEND_HASH {
=20
 typedef struct _XENVIF_ADDRESS {
     SOCKADDR_INET               Address;
+    UINT8                       Prefix;
 } XENVIF_ADDRESS, *PXENVIF_ADDRESS;
=20
 struct _XENVIF_FRONTEND {
@@ -541,7 +542,8 @@ found:
 static NTSTATUS
 FrontendInsertAddress(
     IN  PXENVIF_FRONTEND    Frontend,
-    IN  const SOCKADDR_INET *Address
+    IN  const SOCKADDR_INET *Address,
+    IN  UINT8               Prefix
     )
 {
     ULONG                   Index;
@@ -559,14 +561,16 @@ FrontendInsertAddress(
         if (Address->si_family =3D=3D AF_INET) {
             if (RtlEqualMemory(&Address->Ipv4=2Esin_addr=2Es_addr,
                                &Entry->Address=2EIpv4=2Esin_addr=2Es_addr=
,
-                                 IPV4_ADDRESS_LENGTH))
+                                 IPV4_ADDRESS_LENGTH) &&
+                Prefix =3D=3D Entry->Prefix)
                 goto done;
         } else {
             ASSERT3U(Address->si_family, =3D=3D, AF_INET6);
=20
             if (RtlEqualMemory(&Address->Ipv6=2Esin6_addr=2Es6_addr,
                                &Entry->Address=2EIpv6=2Esin6_addr=2Es6_ad=
dr,
-                               IPV6_ADDRESS_LENGTH))
+                               IPV6_ADDRESS_LENGTH) &&
+                Prefix =3D=3D Entry->Prefix)
                 goto done;
         }
     }
@@ -585,7 +589,7 @@ FrontendInsertAddress(
     if (Frontend->AddressCount !=3D 0)
         __FrontendFree(Frontend->AddressTable);
=20
-    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address };
+    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address, Prefi=
x };
     Frontend->AddressTable =3D Table;
=20
 done:
@@ -627,7 +631,9 @@ FrontendProcessAddressTable(
             Row->Address=2Esi_family !=3D AF_INET6)
             continue;
=20
-        status =3D FrontendInsertAddress(Frontend, &Row->Address);
+        status =3D FrontendInsertAddress(Frontend,
+                                       &Row->Address,
+                                       Row->OnLinkPrefixLength);
         if (!NT_SUCCESS(status))
             goto fail1;
     }
@@ -685,7 +691,7 @@ FrontendDumpIPv4Address(
     _In_ PXENVIF_ADDRESS            Entry
     )
 {
-    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX")];
+    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX/prefix"=
)];
     PIN_ADDR                        Address;
     NTSTATUS                        status;
=20
@@ -711,6 +717,26 @@ FrontendDumpIPv4Address(
     if (!NT_SUCCESS(status))
         return status;
=20
+    if (Entry->Prefix > 32)
+        return STATUS_SUCCESS;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv4/%u/prefix",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    status =3D XENBUS_STORE(Printf,
+                          &Frontend->StoreInterface,
+                          Transaction,
+                          __FrontendGetPrefix(Frontend),
+                          Node,
+                          "%hhu",
+                          Entry->Prefix);
+    if (!NT_SUCCESS(status))
+        return status;
+
     return STATUS_SUCCESS;
 }
=20
@@ -722,7 +748,7 @@ FrontendDumpIPv6Address(
     _In_ PXENVIF_ADDRESS            Entry
     )
 {
-    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX")];
+    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX/prefix"=
)];
     ULONG                           Index;
     ULONG                           Count;
     ULONG                           ZeroIndex;
@@ -810,6 +836,26 @@ FrontendDumpIPv6Address(
     if (!NT_SUCCESS(status))
         return status;
=20
+    if (Entry->Prefix > 128)
+        return STATUS_SUCCESS;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv6/%u/prefix",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    status =3D XENBUS_STORE(Printf,
+                          &Frontend->StoreInterface,
+                          Transaction,
+                          __FrontendGetPrefix(Frontend),
+                          Node,
+                          "%hhu",
+                          Entry->Prefix);
+    if (!NT_SUCCESS(status))
+        return status;
+
     return STATUS_SUCCESS;
 }
=20
--=20
2=2E55=2E0=2Ewindows=2E3



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.159c.f7cb2263533df53b.19fa92f6e70.e0ef083547dd71bf=---


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 28 14:44:49 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Jul 2026 14:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1374487.1621636 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woj33-0003Q8-8K; Tue, 28 Jul 2026 14:44:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1374487.1621636; Tue, 28 Jul 2026 14:44:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1woj33-0003Pv-1V; Tue, 28 Jul 2026 14:44:49 +0000
Received: by outflank-mailman (input) for mailman id 1374487;
 Tue, 28 Jul 2026 14:44:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f6f51000e099@swg.vates.tech>)
 id 1woj32-0003PQ-DX
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 14:44:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1woj31-00Eh1b-Qc
 for win-pv-devel@lists.xenproject.org; Tue, 28 Jul 2026 16:44:47 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f6f51000e099@swg.vates.tech>)
 id 6a68c043-2eae-0a2a0a5409dd-0a2a4508a668-46
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:44:47 +0200
Received: from [185.255.28.35] (helo=prod-mta-13-02.swg-srv.net)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19fa92f6f51000e099@swg.vates.tech>)
 id 6a68c05f-f659-0a2a45080019-b9ff1c23aab9-3
 for <win-pv-devel@lists.xenproject.org>; Tue, 28 Jul 2026 16:44:47 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13-02.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19fa92f6f51000e099.001 for <win-pv-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 28 Jul 2026 14:44:46 +0000
Received: from localhost.localdomain (155.223.66.37.rev.sfr.net
 [37.66.223.155]) (Authenticated sender: ngoc-tu.dinh@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 8AB54829EF;
 Tue, 28 Jul 2026 16:44:45 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=igBUrzYNhoLFEaAng8T4oKI2OUHrxWU26vkL4BwLY+c=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=dLp49SUkO+eatDwxNYrXwNSv+otf+rGSKpidmWGeGq0DPk9lD6hG465ptnpPyR/pmuDg8W8oJ
 O8jrdpo+mI0Srh2htiYY/ifd/yYjWCd3NJ6xrqHYxHieNxQ3HRoXFut0Ak+zMflmMSjVeCX4AYP
 yfIxFtsJant9aTK0bVxD2+CKb2gKMtDre14Y8/8ZzOUXzqozUPGQ0TECl0pWb+ZonpxM0QTbBLF
 SHCA+sZxy8f6T0D83fzEpq0eQvBSkAnmcCXqgwpDBS4aEvTKlV3gWGnQPBeAgKzKEpnOgCA4xaE
 lI/y4e0Fxdb7QaeF+abWpSnnkvuLo3FmVR5QAujt0wPg==
X-Zone-Loop: d8e66ee5070508499deb548f1d9676e97a61365477e8
x-campaign-type: default
x-transaction-id: c0cab709-51a9-466a-b0ad-7cffcfd15e42
x-swg-uid: 01-ade1edd8-c95c-4440-8226-92d075bd38ab
X-Mailer: Sweego
Message-ID:
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f6f51000e099@vates.tech>
x-swg-bid: 1785249886.8631fc262581453bbf619ec5b2062170.19fa92f6f51000e099
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Tu Dinh <ngoc-tu.dinh@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>
Subject: [PATCH v2 2/3] Refactor FrontendDumpIPv4/IPv6Address
Date: Tue, 28 Jul 2026 16:44:40 +0200
In-Reply-To: <20260728144443.289-1-ngoc-tu.dinh@vates.tech>
References: <1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@vates.tech>
 <20260728144443.289-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.159b.6240a2f4275930fb.19fa92f6db4.7889095d242941ba=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1785249885620
X-purgate-ID: tlsNG-c1860d/1785249887-D654487B-1105C535/0/0
X-purgate-type: clean
X-purgate-size: 7946

---=Part.159b.6240a2f4275930fb.19fa92f6db4.7889095d242941ba=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Pass the entire PXENVIF_ADDRESS and integer address index to these
functions instead of inlining it into FrontendDumpAddressTable=2E

This lets each dump function decide where to put the xenstore values=2E

Signed-off-by: Tu Dinh <ngoc-tu=2Edinh@vates=2Etech>
---
 src/xenvif/frontend=2Ec | 105 ++++++++++++++++++++----------------------
 1 file changed, 51 insertions(+), 54 deletions(-)

diff --git a/src/xenvif/frontend=2Ec b/src/xenvif/frontend=2Ec
index 4184b14=2E=2E680a338 100644
--- a/src/xenvif/frontend=2Ec
+++ b/src/xenvif/frontend=2Ec
@@ -681,42 +681,67 @@ static NTSTATUS
 FrontendDumpIPv4Address(
     _In_ PXENVIF_FRONTEND           Frontend,
     _In_ PXENBUS_STORE_TRANSACTION  Transaction,
-    _In_ PSTR                       Node,
-    _In_ PIPV4_ADDRESS              Address
+    _In_ ULONG                      AddressIndex,
+    _In_ PXENVIF_ADDRESS            Entry
     )
 {
+    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX")];
+    PIN_ADDR                        Address;
     NTSTATUS                        status;
=20
+    Address =3D &Entry->Address=2EIpv4=2Esin_addr;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv4/%u",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
     status =3D XENBUS_STORE(Printf,
                           &Frontend->StoreInterface,
                           Transaction,
                           __FrontendGetPrefix(Frontend),
                           Node,
                           "%u=2E%u=2E%u=2E%u",
-                          Address->Byte[0],
-                          Address->Byte[1],
-                          Address->Byte[2],
-                          Address->Byte[3]);
-    return status;
+                          Address->S_un=2ES_un_b=2Es_b1,
+                          Address->S_un=2ES_un_b=2Es_b2,
+                          Address->S_un=2ES_un_b=2Es_b3,
+                          Address->S_un=2ES_un_b=2Es_b4);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    return STATUS_SUCCESS;
 }
=20
 static NTSTATUS
 FrontendDumpIPv6Address(
     _In_ PXENVIF_FRONTEND           Frontend,
     _In_ PXENBUS_STORE_TRANSACTION  Transaction,
-    _In_ PSTR                       Node,
-    _In_ PIPV6_ADDRESS              Address
+    _In_ ULONG                      AddressIndex,
+    _In_ PXENVIF_ADDRESS            Entry
     )
 {
+    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX")];
     ULONG                           Index;
     ULONG                           Count;
     ULONG                           ZeroIndex;
     ULONG                           ZeroCount;
+    PIN6_ADDR                       Address;
     NTSTATUS                        status;
=20
+    Address =3D &Entry->Address=2EIpv6=2Esin6_addr;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv6/%u",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
     Count =3D ZeroIndex =3D ZeroCount =3D 0;
     for (Index =3D 0; Index < 8; Index++) {
-        if (Address->Word[Index] =3D=3D 0)
+        if (Address->u=2EWord[Index] =3D=3D 0)
             Count++;
         else
             Count =3D 0;
@@ -746,7 +771,7 @@ FrontendDumpIPv6Address(
                 status =3D RtlStringCchPrintfA(Parts[Index],
                                              sizeof(Parts[Index]),
                                              Index =3D=3D 0 ? "%hx" : ":%=
hx",
-                                             NTOHS(Address->Word[Index]))=
;
+                                             NTOHS(Address->u=2EWord[Inde=
x]));
                 if (!NT_SUCCESS(status))
                     return status;
             }
@@ -773,17 +798,19 @@ FrontendDumpIPv6Address(
                               __FrontendGetPrefix(Frontend),
                               Node,
                               "%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx",
-                              NTOHS(Address->Word[0]),
-                              NTOHS(Address->Word[1]),
-                              NTOHS(Address->Word[2]),
-                              NTOHS(Address->Word[3]),
-                              NTOHS(Address->Word[4]),
-                              NTOHS(Address->Word[5]),
-                              NTOHS(Address->Word[6]),
-                              NTOHS(Address->Word[7]));
+                              NTOHS(Address->u=2EWord[0]),
+                              NTOHS(Address->u=2EWord[1]),
+                              NTOHS(Address->u=2EWord[2]),
+                              NTOHS(Address->u=2EWord[3]),
+                              NTOHS(Address->u=2EWord[4]),
+                              NTOHS(Address->u=2EWord[5]),
+                              NTOHS(Address->u=2EWord[6]),
+                              NTOHS(Address->u=2EWord[7]));
     }
+    if (!NT_SUCCESS(status))
+        return status;
=20
-    return status;
+    return STATUS_SUCCESS;
 }
=20
 static NTSTATUS
@@ -831,25 +858,10 @@ FrontendDumpAddressTable(
=20
         switch (Entry->Address=2Esi_family) {
         case AF_INET: {
-            IPV4_ADDRESS    Address;
-            CHAR            Node[sizeof ("ipv4/XXXXXXXXXX")];
-
-            RtlCopyMemory(Address=2EByte,
-                          &Entry->Address=2EIpv4=2Esin_addr=2Es_addr,
-                          IPV4_ADDRESS_LENGTH);
-
-            status =3D RtlStringCbPrintfA(Node,
-                                        sizeof (Node),
-                                        "ipv4/%u",
-                                        IpVersion4Count);
-            ASSERT(NT_SUCCESS(status));
-            if (!NT_SUCCESS(status))
-                continue;
-
             status =3D FrontendDumpIPv4Address(Frontend,
                                              Transaction,
-                                             Node,
-                                             &Address);
+                                             Index,
+                                             Entry);
             if (!NT_SUCCESS(status))
                 goto fail4;
=20
@@ -857,25 +869,10 @@ FrontendDumpAddressTable(
             break;
         }
         case AF_INET6: {
-            IPV6_ADDRESS    Address;
-            CHAR            Node[sizeof ("ipv6/XXXXXXXXXX")];
-
-            RtlCopyMemory(Address=2EByte,
-                          &Entry->Address=2EIpv6=2Esin6_addr=2Es6_addr,
-                          IPV6_ADDRESS_LENGTH);
-
-            status =3D RtlStringCbPrintfA(Node,
-                                        sizeof (Node),
-                                        "ipv6/%u",
-                                        IpVersion6Count);
-            ASSERT(NT_SUCCESS(status));
-            if (!NT_SUCCESS(status))
-                continue;
-
             status =3D FrontendDumpIPv6Address(Frontend,
                                              Transaction,
-                                             Node,
-                                             &Address);
+                                             Index,
+                                             Entry);
             if (!NT_SUCCESS(status))
                 goto fail4;
=20
--=20
2=2E55=2E0=2Ewindows=2E3



-- 
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates =
solutions

web: https://vates=2Etech
---=Part.159b.6240a2f4275930fb.19fa92f6db4.7889095d242941ba=---


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 29 08:22:02 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Jul 2026 08:22:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1375302.1622481 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wozY9-0002Hp-7h; Wed, 29 Jul 2026 08:22:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1375302.1622481; Wed, 29 Jul 2026 08:22:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wozY9-0002Hi-53; Wed, 29 Jul 2026 08:22:01 +0000
Received: by outflank-mailman (input) for mailman id 1375302;
 Wed, 29 Jul 2026 08:21:59 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1wozY7-0002Hc-LK
 for win-pv-devel@lists.xenproject.org; Wed, 29 Jul 2026 08:21:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wozY6-001tB3-Ip
 for win-pv-devel@lists.xenproject.org; Wed, 29 Jul 2026 10:21:58 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a69b823-5cb7-0a2a0a5109dd-0a2a4502c996-14
 for <win-pv-devel@lists.xenproject.org>; Wed, 29 Jul 2026 10:21:58 +0200
Received: from [52.101.53.43]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a69b825-6ca4-0a2a45020019-3465352b1735-3
 for <win-pv-devel@lists.xenproject.org>; Wed, 29 Jul 2026 10:21:58 +0200
Received: from SA6PR03MB7760.namprd03.prod.outlook.com (2603:10b6:806:43c::5)
 by DM4PR03MB6047.namprd03.prod.outlook.com (2603:10b6:5:392::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.12; Wed, 29 Jul
 2026 08:21:55 +0000
Received: from SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38]) by SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38%3]) with mapi id 15.21.0270.009; Wed, 29 Jul 2026
 08:21:54 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tD1yU63lfCYNzH10N7uRNEBLcKogJCHyVYzt1Tbv2p3CaqKgXjG4F1//mALws7Ue0vrvE9SgRI9K+ZwRysnMTCaOdkdMwnNROuACxWS2U83vKORar7PTsYE4GlGPhrVQ/r0oWkqiVF67oCApgBe83PgoF9Y3RWs0etCTsvqsyRTjYPibkQl7wDS9Vl9OMDy0nMlTkCz+Fs0Z3DM77gR5XgjKyAO67zjNzNgNtxhQ2ZGu5vZRY3Jdd89wvS1jv0S1vZDnRlfytdz0xo9m/rpWD/Jxo0d7JaXP3Vq7+SDJ5jyBU7UBPXlEvG4Dfke3wHwGuf/VkW3D5+p/Wo2GubmV6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GSUSSHKjhO539allwd8O6vq2rs1KcVYoMcyC65LUFvo=;
 b=s/rmd9RZWNi+9J2GBGTgG44fDflEgXc20SiBCsnTWSSZaunbEzt8fQD4FrewLEz2tjsOQnW/Ct1UdVQrQC22XPMF+1Kzyp8AIzhv4Mp5NQl9N7JjZ3BnY+FiUmgQjufDRkVmLYBNbFBMGkbvQ6xDFhfCAJQb204xag/hz6frfusvFfkcV3m8ZtKo0ra66Or5t8moPR9aVSvaD+ti60ChlCeXru0BfOEwYECy4YDizdOG2BxXfOpMxjWOvVgTjnxiOeYtwOxrIqjW72ew3S8d9pqTyJo2EMoPRBzRFKpSeB4xUPSTIlq7ZPDbFKbN8E2VJQ2UEe6rVXbQe/7j9G3cIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GSUSSHKjhO539allwd8O6vq2rs1KcVYoMcyC65LUFvo=;
 b=HhGJq0zGyumrnzRmTHcUv/RBaPqSqX/osMJYsoYUXXvu6w2XjJKz5fy8QGNNoIHnBj6q1LMqOOUWhDtgt55GDd2ffZk8ocjCX4f8V2r39vAE7PIaolDb85E5yeDzvwDuwsX0J/m9TWddKuwO3nVxcjat3Fp4QJ2Uakx7Lgxt9Ug=
From: Owen Smith <owen.smith@citrix.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/3] Generalize AddressTable as address structs
Thread-Topic: [PATCH v2 1/3] Generalize AddressTable as address structs
Thread-Index: AQHdHp+nDSkof9vb106cd/v66dPp5LaEKVGr
Date: Wed, 29 Jul 2026 08:21:54 +0000
Message-ID:
 <SA6PR03MB77606AECB5149C0719E2719FFECA2@SA6PR03MB7760.namprd03.prod.outlook.com>
References:
 <1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@vates.tech>
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f6f17000e099@vates.tech>
In-Reply-To:
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f6f17000e099@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR03MB7760:EE_|DM4PR03MB6047:EE_
x-ms-office365-filtering-correlation-id: 00f026e5-eb9f-4428-52d3-08deed4a732b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|23010399003|366016|376014|38070700021|11063799006|56012099006|4143699003|10067099003|6133799003|22082099003|18002099003;
x-microsoft-antispam-message-info:
 hRQSj50rk0hcVSH+6cqym6dlfsCqIBa6ekI9IdIkOWWD0AW/4cLhZQ8wjj4MTI5aYgB4TuHmE/X+aYwC/SayujocwaA9mNQ6xIeZ/7RbvW+nj+YD6BwTvf76fy1sichzs34dIQmvGEg9Zo9bHg749sgi8lj0Oph1nK0ZuX+RKEgQQr1cfnZ9UUshTY84jjUjdj7shx8YHyyfTDq4vfFiOipLZ3FPlSr4JIubcbfKu/ZOjg6/aEvcFu6NRi8dtG6EL8TGKJBsagZuJAOUf+fp0WtgmDgzsnx2OtUnV8QvNiSfsyPj20Ta5t8+a+9Sxr7jwLWeltuW4JgGyOtGrLckh5X4Sd45P9gvSncqPT0iRjTN6QhRu7TZrj/lnvFJ/BaYQu/adWgdQLv7qplCha9nM6GGKAUQb7WrHN7ALVkYljFJhPJyQlqemlqlbKrIACVraCRZAWrkg9WtUy7hy+8GgJMPTeQ5pEuaMRgVq3U3A+nfWDC7hFWnpW0sDz8OiK9LEtYy9LC3sJy0TPPK7EM2fXaZDRGTnoLX4caisbmDILY0rEs7CIsx47AuSasiHai3Za0dfuvkO6cKUUujnrKlxBvNieYql6BsM0KpHApwcO44EqdzuddpioF4awyAtjmG2D0h+a6HenTOuyoVPBLK69TqBGfn7aie5B/nLb5S71s=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA6PR03MB7760.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(38070700021)(11063799006)(56012099006)(4143699003)(10067099003)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?BfRusYWnr04SDRLQ+SGcXM07GQjGfnsl79i1oUru/cnWHvCoa7x5vjDyPsAl?=
 =?us-ascii?Q?TPRbh3q+gW3jnqXgA4F+YStqLlQgPeIbz+iXhvD2rSll/GpUYAg/Kj9Yg8Mt?=
 =?us-ascii?Q?1dL1/dHICzzaMRTtI8Xp9DCWe/QLcCyzjF+0XCIlGSYm+zcwhQZnfgiC9GjR?=
 =?us-ascii?Q?1+0tY8nWWRReSWv7mBsQGOwJ15uxwlcdsbKuA2WlP02OeeQxvmMQds7XJmV8?=
 =?us-ascii?Q?arJZJII3KP3SfR7eVQVM0iAwC0pLN0XYxFcG9fyJb//3db9P6djCTGWkBQo9?=
 =?us-ascii?Q?z1+Vq/sLZpr0biIUkLJRBkKXOQjzOQBDLdkGK9neFdyOZRWXoL3oB8Cmv5be?=
 =?us-ascii?Q?i1sjKBC+nra/2bNroSQ/aBE+yWxYazdTpSp/3Ph679tAH/eKqrsfOyVFFcIJ?=
 =?us-ascii?Q?fteVvwt6BKFX92uYwMMd78/qAaKcXWMUfDwabM5gWEdY4vKk7o1G50kAXNEu?=
 =?us-ascii?Q?CDJ/846WhCLAdCdw3LZ+ZcGiHZnMXo0vo++fotxTU8h8+jFdYMhB6K1EtqrU?=
 =?us-ascii?Q?h0Oabpj0/DtqdUjvtsGYbYphgUaDMcs39k5062DHFDIBn4UX709Htho5WUmF?=
 =?us-ascii?Q?y4GNXy8Hmui6NEnDF4hRQxvtHP4phTLhN0MXdFjldhQuwuhQZPfp55PLBOac?=
 =?us-ascii?Q?zbCM5x4EQvShyAq+G8OYLrA1fKbNo70jw63QBMKHyTQ7632KF7RNdJIsSG0M?=
 =?us-ascii?Q?97/DvIAqJ6ES1LXs8Ft3wQpCvklxnniE9QaMwb45VZFKY5ZU3NaEMf3UxHmA?=
 =?us-ascii?Q?tzp1767xW0EeE8zNdBVzYHnT0Okt9g6eO/K+Z2eMisRU+EzKdChc7wRo7llG?=
 =?us-ascii?Q?legvd87j/hOdxSCmTdL7S6ybdZXlq3wcLQlvk8lvRYlG0gWww8ayh5GDOVmH?=
 =?us-ascii?Q?df/DTYoKedS5rJk/crmyw6nvt1S3e2b03lIE7kODHaphdZBC0cZ6Qly5pqe6?=
 =?us-ascii?Q?e+bpllk7/CGiCw9oH7yxzU3YYBTtJtzVPJNKCFVdQHeskmoesa8+WQfU7VI9?=
 =?us-ascii?Q?vTRQrhrghjqvsKyMrNg8Rijxw0VLLSrDfAb7sHfT3uB6SnFVJzdff2gANyiB?=
 =?us-ascii?Q?FFa1frfy8XUmD8R+6OgTInApZkA+yy1YRr3xwYNmvXS56FhjV2tu/lPOchiB?=
 =?us-ascii?Q?46/oFiQ5H2NdoYgvHJimX/gNx5+pRWYvN2EYjfxAV7Nxolg5gCGHLwugdREf?=
 =?us-ascii?Q?PwKDjTDWUTz5pFkCpH0/InrAVuueNDX3BbKwI4M7RiuVtMVwDP2oDZZORzms?=
 =?us-ascii?Q?mJ7uqEWYgz02nO4xy27oFngrZIUYf/nqXGR+GKxRtJB8M+pEXDTu1GX414Py?=
 =?us-ascii?Q?wly4n3zcQYLFgbw2VWG6Wx1r8PtmI1cnf4c4EIJiTRBSQLnv/dxONLfS/p2a?=
 =?us-ascii?Q?79PjvtjqujchfomHsgDHSHLmnSqGtIKwoToD4PEuapGMasc1q+g3bIo9jMGx?=
 =?us-ascii?Q?a5aBJqRgty552m4hymIzDBrQBW44Z4sFc4TA34S40c6fu3g3nSJRymvhbOOB?=
 =?us-ascii?Q?VN8B14ZVne4xXx9Ev8hxsuCb/6wowAJwqEmmDYnmbjepZ6wms+NAaFK8jUtS?=
 =?us-ascii?Q?B7bkvLqpcN0hkQGQwpW+YfrrOCx3bV7vfbdxr5QhLa+kgZfjNinaNUq0TwxL?=
 =?us-ascii?Q?ybXawYwRQr+fVmixoOvgGUjIg/IbIDEKaQvPtXFUXnLDwDT3iYJAbxkBNdWv?=
 =?us-ascii?Q?5QXDOTecdCjXFijLK7bF+KXKu4KP2RkUGkc0rYwLeOZP1HaVql436Wpyx0oc?=
 =?us-ascii?Q?5n4S7gRV5w=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR03MB7760.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 00f026e5-eb9f-4428-52d3-08deed4a732b
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2026 08:21:54.8497
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: L8URsbPnBhCdcpaaCdaEKUtNFvBmpaMFBNNl0RgXrW1JsBn3o8Wdg2Og563nLPNq9MUb7ZNom0/SpJfhp1htcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6047
X-purgate-ID: tlsNG-720697/1785313318-668B42AC-9788B116/0/0
X-purgate-type: clean
X-purgate-size: 6323


Reviewed-by: Owen Smith <owen.smith@citrix.com>

________________________________________
From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> on behalf of=
 Tu Dinh <ngoc-tu.dinh@vates.tech>
Sent: 28 July 2026 3:44 PM
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh
Subject: [PATCH v2 1/3] Generalize AddressTable as address structs

A frontend address may include additional information beyond what a
SOCKADDR_INET contains (e.g. address prefixes).

Bring the address table under a struct to allow including extra info for
each address.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenvif/frontend.c | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 256b35b..4184b14 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -67,6 +67,10 @@ typedef struct _XENVIF_FRONTEND_HASH {
     ULONG                           Size;
 } XENVIF_FRONTEND_HASH, *PXENVIF_FRONTEND_HASH;

+typedef struct _XENVIF_ADDRESS {
+    SOCKADDR_INET               Address;
+} XENVIF_ADDRESS, *PXENVIF_ADDRESS;
+
 struct _XENVIF_FRONTEND {
     PXENVIF_PDO                 Pdo;
     PCHAR                       Path;
@@ -104,7 +108,7 @@ struct _XENVIF_FRONTEND {
     PXENVIF_THREAD              MibThread;
     CHAR                        Alias[IF_MAX_STRING_SIZE + 1];
     NET_IFINDEX                 InterfaceIndex;
-    PSOCKADDR_INET              AddressTable;
+    PXENVIF_ADDRESS             AddressTable;
     ULONG                       AddressCount;

     XENVIF_FRONTEND_HASH        Hash;
@@ -541,43 +545,47 @@ FrontendInsertAddress(
     )
 {
     ULONG                   Index;
-    PSOCKADDR_INET          Table;
+    PXENVIF_ADDRESS         Table;
     NTSTATUS                status;

     Trace("=3D=3D=3D=3D>\n");

     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        if (Frontend->AddressTable[Index].si_family !=3D Address->si_famil=
y)
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        if (Entry->Address.si_family !=3D Address->si_family)
             continue;

         if (Address->si_family =3D=3D AF_INET) {
             if (RtlEqualMemory(&Address->Ipv4.sin_addr.s_addr,
-                               &Frontend->AddressTable[Index].Ipv4.sin_add=
r.s_addr,
+                               &Entry->Address.Ipv4.sin_addr.s_addr,
                                  IPV4_ADDRESS_LENGTH))
                 goto done;
         } else {
             ASSERT3U(Address->si_family, =3D=3D, AF_INET6);

             if (RtlEqualMemory(&Address->Ipv6.sin6_addr.s6_addr,
-                               &Frontend->AddressTable[Index].Ipv6.sin6_ad=
dr.s6_addr,
+                               &Entry->Address.Ipv6.sin6_addr.s6_addr,
                                IPV6_ADDRESS_LENGTH))
                 goto done;
         }
     }

     // We have an address we've not seen before so grow the table
-    Table =3D __FrontendAllocate(sizeof (SOCKADDR_INET) * (Frontend->Addre=
ssCount + 1));
+    Table =3D __FrontendAllocate(sizeof (XENVIF_ADDRESS) * (Frontend->Addr=
essCount + 1));

     status =3D STATUS_NO_MEMORY;
     if (Table =3D=3D NULL)
         goto fail1;

-    RtlCopyMemory(Table, Frontend->AddressTable, sizeof (SOCKADDR_INET) * =
Frontend->AddressCount);
+    RtlCopyMemory(Table,
+                  Frontend->AddressTable,
+                  sizeof (XENVIF_ADDRESS) * Frontend->AddressCount);

     if (Frontend->AddressCount !=3D 0)
         __FrontendFree(Frontend->AddressTable);

-    Table[Frontend->AddressCount++] =3D *Address;
+    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address };
     Frontend->AddressTable =3D Table;

 done:
@@ -819,13 +827,15 @@ FrontendDumpAddressTable(
     IpVersion6Count =3D 0;

     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        switch (Frontend->AddressTable[Index].si_family) {
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        switch (Entry->Address.si_family) {
         case AF_INET: {
             IPV4_ADDRESS    Address;
             CHAR            Node[sizeof ("ipv4/XXXXXXXXXX")];

             RtlCopyMemory(Address.Byte,
-                          &Frontend->AddressTable[Index].Ipv4.sin_addr.s_a=
ddr,
+                          &Entry->Address.Ipv4.sin_addr.s_addr,
                           IPV4_ADDRESS_LENGTH);

             status =3D RtlStringCbPrintfA(Node,
@@ -851,7 +861,7 @@ FrontendDumpAddressTable(
             CHAR            Node[sizeof ("ipv6/XXXXXXXXXX")];

             RtlCopyMemory(Address.Byte,
-                          &Frontend->AddressTable[Index].Ipv6.sin6_addr.s6=
_addr,
+                          &Entry->Address.Ipv6.sin6_addr.s6_addr,
                           IPV6_ADDRESS_LENGTH);

             status =3D RtlStringCbPrintfA(Node,
@@ -1307,12 +1317,14 @@ FrontendAdvertiseIpAddresses(
     KeAcquireSpinLock(&Frontend->Lock, &Irql);

     for (Index =3D 0; Index < Frontend->AddressCount; Index++) {
-        switch (Frontend->AddressTable[Index].si_family) {
+        PXENVIF_ADDRESS     Entry =3D &Frontend->AddressTable[Index];
+
+        switch (Entry->Address.si_family) {
         case AF_INET: {
             IPV4_ADDRESS    Address;

             RtlCopyMemory(Address.Byte,
-                          &Frontend->AddressTable[Index].Ipv4.sin_addr.s_a=
ddr,
+                          &Entry->Address.Ipv4.sin_addr.s_addr,
                           IPV4_ADDRESS_LENGTH);

             TransmitterQueueArp(Transmitter, &Address);
@@ -1322,7 +1334,7 @@ FrontendAdvertiseIpAddresses(
             IPV6_ADDRESS    Address;

             RtlCopyMemory(Address.Byte,
-                          &Frontend->AddressTable[Index].Ipv6.sin6_addr.s6=
_addr,
+                          &Entry->Address.Ipv6.sin6_addr.s6_addr,
                           IPV6_ADDRESS_LENGTH);

             TransmitterQueueNeighbourAdvertisement(Transmitter, &Address);
--
2.55.0.windows.3



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 29 08:22:04 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Jul 2026 08:22:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1375303.1622485 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wozYC-0002JJ-9W; Wed, 29 Jul 2026 08:22:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1375303.1622485; Wed, 29 Jul 2026 08:22:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wozYC-0002JC-6c; Wed, 29 Jul 2026 08:22:04 +0000
Received: by outflank-mailman (input) for mailman id 1375303;
 Wed, 29 Jul 2026 08:22:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1wozYA-0002Iq-Jt
 for win-pv-devel@lists.xenproject.org; Wed, 29 Jul 2026 08:22:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wozYA-0074Hc-0Q
 for win-pv-devel@lists.xenproject.org; Wed, 29 Jul 2026 10:22:02 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a69b823-e002-0a2a0a5209dd-0a2a4509d2c8-34
 for <win-pv-devel@lists.xenproject.org>; Wed, 29 Jul 2026 10:22:01 +0200
Received: from [40.107.208.13]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a69b828-be1a-0a2a45090019-286bd00de5ab-3
 for <win-pv-devel@lists.xenproject.org>; Wed, 29 Jul 2026 10:22:01 +0200
Received: from SA6PR03MB7760.namprd03.prod.outlook.com (2603:10b6:806:43c::5)
 by DM4PR03MB6047.namprd03.prod.outlook.com (2603:10b6:5:392::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.12; Wed, 29 Jul
 2026 08:21:58 +0000
Received: from SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38]) by SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38%3]) with mapi id 15.21.0270.009; Wed, 29 Jul 2026
 08:21:58 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kBi8Zm0JSV4LB6mSAx/TXx9Si99Ic1lbs3rj/oLSlqSg4epZTVuz4/GkX9PlipNMX93VrpbM0JGYlon1LtYS5/24W5VTw/oiVxMIwZJeGR6cRZg96TEGYV13qJCiniNOlR0xkXLBTUQM0fXnjdyarPr4pY9plAQ6ECEn+IOFCO07Pn4+ApvuNfg0qrxmSrVayoSHt3fQdEyMNtp604rcA6RV82THvY7k5hL8G/6HJJwfpAaOVLcrUVIYRgIeFA8tB8MhTNtTmQitRe1ING2C98QprWAit8A3tRPbG5JwIBAIANAuTurwdLuJNrsOKT55sMsgMCIysfR8aKoaaZYTsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1H+d9ZDKDz2vOtRzrlMWEfDNwX7YxgGyGYLzt6AxU/A=;
 b=JWeEkKr1Tnuy5MDpuLkx0uRGkhfu6EYVk8gDck8NLbdwAm0WcEA1T2f04wyB79spzh8O710MMFkxlT2fQDnov7b0Disn2jyVuaIFXOynbEzBJ4FHadhTXJnq2mhOa71199TAsV1BB0HvHe5JEiM+7aNbInMolbRN4T9C/5p+kI3NJ6AJc2BwgEEyDP8lv7WgCEXM1S3bp9P8FQfeTm2RPWzC1jtRqLAJopfVlbU2GqHJh84ayHmoohzVZO3WX75aSKT6jH1D0RZne6AMb45bn67dpwLf/81smTtwnJmHTyTZTeNkZkYW19FUOmrP0GobFInOTuPfTIR4zl1ChAfYow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1H+d9ZDKDz2vOtRzrlMWEfDNwX7YxgGyGYLzt6AxU/A=;
 b=k+qOSpLFUDq20EsyZFmgnthOHCMLAegmNvbf7kJ6SniduC8mS19MDrgrcpuVIr4a0O76JAmekR7vP5PgFDsQFtegV90Gh1Lgnk35TFJ9bezi8M3pPn/Stf0rpgapXOgjKQsnsIY26A24BqSvncUg9LyUruGKPbhrXF28wr+qVMQ=
From: Owen Smith <owen.smith@citrix.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 2/3] Refactor FrontendDumpIPv4/IPv6Address
Thread-Topic: [PATCH v2 2/3] Refactor FrontendDumpIPv4/IPv6Address
Thread-Index: AQHdHp+oOTxj9EUSUEeHDJzSfItO67aEKWQj
Date: Wed, 29 Jul 2026 08:21:58 +0000
Message-ID:
 <SA6PR03MB7760FD0E751296BDCAAD6DA4FECA2@SA6PR03MB7760.namprd03.prod.outlook.com>
References:
 <1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@vates.tech>
 <20260728144443.289-1-ngoc-tu.dinh@vates.tech>
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f6f51000e099@vates.tech>
In-Reply-To:
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f6f51000e099@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR03MB7760:EE_|DM4PR03MB6047:EE_
x-ms-office365-filtering-correlation-id: 9059b2d1-bb8d-43e1-7b2f-08deed4a757f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|23010399003|366016|376014|38070700021|11063799006|56012099006|4143699003|10067099003|6133799003|22082099003|18002099003;
x-microsoft-antispam-message-info:
 AU2wKMgtEkvpaWTp1dHwsZMtlH5WDA5iZhgYY/ZKSSh36AAgYPpRNhOE9c7DJWurYOpkYhd1vK7SuSj+0tOpH0NBLR/jayORICAad47Wraj4MNrnE1GOuZrWRUdVvaN5jjaNWbRzs4aeMQWIiWb61PPtb+h+m1ABv9WrqIl0Aj0Y/7eOvQS+r2FTEBr3xVTylC0JfJj52tES9f2/U6YJ17pFkyR0fqIv/Xk9TkLBb2H6exl9wNK3z/BdtpZwZwhZurR1ptlGa1ZhzKYfjYkYNwkWweEfFxTRUoWSNZdR5jQAb9apIqNWf5SjRxU7zXSN03GkT7/yxJQwdqJswnwmNBs6+bpkU/hzXja+ck99sQksaKqpCr3EHz5tFCopqkboQPuyIRD8Cm5QziISvFBmlxiHMvvsF55KHaTWFvPSDepn4TuABO07scresULParLsvNChNmj2oheCalRTuQf+GI2vLSTR5N7UdGTsjm/jc5JvuCQCbSD03GEsfcimfI9wgoJA8EubGKsWl2usaZKD8DMdp8zKKBTdls7WXlWV9iLYGjIDlOi+vRjcNXrLsvAfTzL/9RgjBAYnhRXTB+q7puq5i6/yoUdHUBclnIqaO4T1wr11kleOf65EzBCDfw/SBr6lidg+OIdzIwzQNOX+02luy2yDloDcFuFo55WIOiI=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA6PR03MB7760.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(38070700021)(11063799006)(56012099006)(4143699003)(10067099003)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?i3Q8DV+J6jI8kd9G/uSF1XIOw1kywF2piJA0evbnB4aaSds41AtNL8kMoUgX?=
 =?us-ascii?Q?0fTNhaueCDRZW96gJuQfnVZie4ayI0h7PLvBgx/8C7/GycyFDv5/rQTmOSSX?=
 =?us-ascii?Q?TUBk3ZN2p6jJEZJcR+T1erUrckO7/Mb7bEqe1ukp9l+uSYVBMS2CZm+rkeFx?=
 =?us-ascii?Q?77Aw8UbX8nvCh3T1oFzE2oWBZjIa3u0dM13qx1pex8sVcNtp68utJM3OQ3ZR?=
 =?us-ascii?Q?QHvlZhfsoISojka9RRybGZyIjc6RVl3ZnYj9UXUmEAzIEL4+cKUiw3BfKMet?=
 =?us-ascii?Q?UN+uPrba6UvZbrNC/zBBKRC7qlAtJxCr2K5xl8WAvmmxQx1Cboq+9VCIRG0q?=
 =?us-ascii?Q?pDGXGEh6+jQEDPNHqynnJme4Oa1bUAtFIzXi/QVi8KCAcGE7uVdE+rsHnb7v?=
 =?us-ascii?Q?M9PRxVSeIS7RVWGdbfhso1/aNdADzqYsMx0whmPlS7468zjnWdbDdCOetcPb?=
 =?us-ascii?Q?0C3ZW1P3KOtXaZudDoQmaADW0YLTDifi7+fWQ7A2KrXkH+opFUJhkY9OkXMK?=
 =?us-ascii?Q?z3vcFUwDsBj7hGzxRtCZnGfRRxrnoKwFhdKcDUQT9x3ZUuRC2r+4R7moXouZ?=
 =?us-ascii?Q?2AOtRtWeQeBcqdPzFKa7x7CfhDqIuO7A4Gn7NAzzMSuEC/JgPTae0GOPezZ2?=
 =?us-ascii?Q?P0SWHNIEOpqinKaK/cudHqh8Job4TQwEzlnDbFaM2HuSZI3c1XCFUuCaPf/m?=
 =?us-ascii?Q?6a5gOW8SDxg+npzbA4R0uN3fZau7OkpsF6j6THF7VgqLeKsANQb6D4Ht2Vgv?=
 =?us-ascii?Q?oRgPDGsIirCFg48p9OD3MttW2AksxiwUlaRi74TPBWvur8eLrWAS3wWQg966?=
 =?us-ascii?Q?zBqxi6sxtDb/Loo8KBQriec7+4kGnSI7jrGtinu2hTAlC71P7eeGk/1MuRLX?=
 =?us-ascii?Q?DAmaE9JN3H7JvOJYrhzeOo3IRnqWkdw4r4JS0NtdgD8v726M9FS7d0c9unAl?=
 =?us-ascii?Q?m156oNiXQdr3pFN976QTpv3x0f4bRl2HdMB3OkqrI5lIzIFmCh2BnRRxf/+M?=
 =?us-ascii?Q?xnmKpFBkRepv9qjBpRYrzTQPQeJnu3OuMRRJ+JydBGDA9TrSdwUMfsi0p2nO?=
 =?us-ascii?Q?ehbXc0mF1NUfTfVoJSNhY3PDh4wYAkz/OA6I5cMi+EZocSZ0G+KP0vXFOTGA?=
 =?us-ascii?Q?Ocs0aJDEt5LWxGeztv4j07lXfdA8F4KloglOI5rKEGM/5yHYRINGoSyr/L2g?=
 =?us-ascii?Q?d2KYDwFNW97jbirHxpoekqAhIeZ+vEOCTW0X5+Mllm3wDirmcgM1YobwBRFr?=
 =?us-ascii?Q?8Vzg3O8OHJsYdW7SEhtJvFYP7lzqqmSh0TYDhrbkSO5vb31ObBi/J7NgGxDM?=
 =?us-ascii?Q?S8JXrPbz5+I1HcupX9eMqQlEGZTdqzrretnssRJaSYSC1FoFnfyJbpH5kXUE?=
 =?us-ascii?Q?hBL8BmBEeYeunKlsiu+fEmEQf9q0oy7idsT0mxVVCXm49/Eyk2DxSZq6+Qwl?=
 =?us-ascii?Q?Al89sgHiiZy4FztZ/tpK+mH5Lj7p3nJMeAEQdfjiYQkWsp/Ef274yhxCuk/E?=
 =?us-ascii?Q?LR//FW2hXsWRGPD7fipaWUZcSRt7Y4hSVXo6Gcq8zYGKSxlAdVY7lBOtA8pZ?=
 =?us-ascii?Q?Yzobw9Qf4KvmBwBSC4NPAQl4n3GO+3Kbo7lGHCoYeUr2ZoJiUYHVxiynpgoV?=
 =?us-ascii?Q?nd+sVV7Jo46Jo62QU2uSrq9DNQl0cSSU4OenCNEp9zG+IvqtIoZQ6Lrw/nRC?=
 =?us-ascii?Q?L6v/pY9uEMkPTaMEO2n+tTRkHJzL2ZErWGoWyUFSfjOCKzq9?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR03MB7760.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9059b2d1-bb8d-43e1-7b2f-08deed4a757f
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2026 08:21:58.7524
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Bznsxa8Pt5JlJjs0BGS/vVYR8Ra+MFtEEQk6R80x9U7MCXUp1+2nXHpIAbq2dvLbaWmiz22GjrS1665N2ivuVA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6047
X-purgate-ID: tlsNG-bad1c0/1785313321-BF4D3034-4F5D07E9/0/0
X-purgate-type: clean
X-purgate-size: 7948

Reviewed-by: Owen Smith <owen.smith@citrix.com>

________________________________________
From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> on behalf of=
 Tu Dinh <ngoc-tu.dinh@vates.tech>
Sent: 28 July 2026 3:44 PM
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh
Subject: [PATCH v2 2/3] Refactor FrontendDumpIPv4/IPv6Address

Pass the entire PXENVIF_ADDRESS and integer address index to these
functions instead of inlining it into FrontendDumpAddressTable.

This lets each dump function decide where to put the xenstore values.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenvif/frontend.c | 105 ++++++++++++++++++++----------------------
 1 file changed, 51 insertions(+), 54 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 4184b14..680a338 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -681,42 +681,67 @@ static NTSTATUS
 FrontendDumpIPv4Address(
     _In_ PXENVIF_FRONTEND           Frontend,
     _In_ PXENBUS_STORE_TRANSACTION  Transaction,
-    _In_ PSTR                       Node,
-    _In_ PIPV4_ADDRESS              Address
+    _In_ ULONG                      AddressIndex,
+    _In_ PXENVIF_ADDRESS            Entry
     )
 {
+    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX")];
+    PIN_ADDR                        Address;
     NTSTATUS                        status;

+    Address =3D &Entry->Address.Ipv4.sin_addr;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv4/%u",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
     status =3D XENBUS_STORE(Printf,
                           &Frontend->StoreInterface,
                           Transaction,
                           __FrontendGetPrefix(Frontend),
                           Node,
                           "%u.%u.%u.%u",
-                          Address->Byte[0],
-                          Address->Byte[1],
-                          Address->Byte[2],
-                          Address->Byte[3]);
-    return status;
+                          Address->S_un.S_un_b.s_b1,
+                          Address->S_un.S_un_b.s_b2,
+                          Address->S_un.S_un_b.s_b3,
+                          Address->S_un.S_un_b.s_b4);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    return STATUS_SUCCESS;
 }

 static NTSTATUS
 FrontendDumpIPv6Address(
     _In_ PXENVIF_FRONTEND           Frontend,
     _In_ PXENBUS_STORE_TRANSACTION  Transaction,
-    _In_ PSTR                       Node,
-    _In_ PIPV6_ADDRESS              Address
+    _In_ ULONG                      AddressIndex,
+    _In_ PXENVIF_ADDRESS            Entry
     )
 {
+    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX")];
     ULONG                           Index;
     ULONG                           Count;
     ULONG                           ZeroIndex;
     ULONG                           ZeroCount;
+    PIN6_ADDR                       Address;
     NTSTATUS                        status;

+    Address =3D &Entry->Address.Ipv6.sin6_addr;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv6/%u",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
     Count =3D ZeroIndex =3D ZeroCount =3D 0;
     for (Index =3D 0; Index < 8; Index++) {
-        if (Address->Word[Index] =3D=3D 0)
+        if (Address->u.Word[Index] =3D=3D 0)
             Count++;
         else
             Count =3D 0;
@@ -746,7 +771,7 @@ FrontendDumpIPv6Address(
                 status =3D RtlStringCchPrintfA(Parts[Index],
                                              sizeof(Parts[Index]),
                                              Index =3D=3D 0 ? "%hx" : ":%h=
x",
-                                             NTOHS(Address->Word[Index]));
+                                             NTOHS(Address->u.Word[Index])=
);
                 if (!NT_SUCCESS(status))
                     return status;
             }
@@ -773,17 +798,19 @@ FrontendDumpIPv6Address(
                               __FrontendGetPrefix(Frontend),
                               Node,
                               "%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx",
-                              NTOHS(Address->Word[0]),
-                              NTOHS(Address->Word[1]),
-                              NTOHS(Address->Word[2]),
-                              NTOHS(Address->Word[3]),
-                              NTOHS(Address->Word[4]),
-                              NTOHS(Address->Word[5]),
-                              NTOHS(Address->Word[6]),
-                              NTOHS(Address->Word[7]));
+                              NTOHS(Address->u.Word[0]),
+                              NTOHS(Address->u.Word[1]),
+                              NTOHS(Address->u.Word[2]),
+                              NTOHS(Address->u.Word[3]),
+                              NTOHS(Address->u.Word[4]),
+                              NTOHS(Address->u.Word[5]),
+                              NTOHS(Address->u.Word[6]),
+                              NTOHS(Address->u.Word[7]));
     }
+    if (!NT_SUCCESS(status))
+        return status;

-    return status;
+    return STATUS_SUCCESS;
 }

 static NTSTATUS
@@ -831,25 +858,10 @@ FrontendDumpAddressTable(

         switch (Entry->Address.si_family) {
         case AF_INET: {
-            IPV4_ADDRESS    Address;
-            CHAR            Node[sizeof ("ipv4/XXXXXXXXXX")];
-
-            RtlCopyMemory(Address.Byte,
-                          &Entry->Address.Ipv4.sin_addr.s_addr,
-                          IPV4_ADDRESS_LENGTH);
-
-            status =3D RtlStringCbPrintfA(Node,
-                                        sizeof (Node),
-                                        "ipv4/%u",
-                                        IpVersion4Count);
-            ASSERT(NT_SUCCESS(status));
-            if (!NT_SUCCESS(status))
-                continue;
-
             status =3D FrontendDumpIPv4Address(Frontend,
                                              Transaction,
-                                             Node,
-                                             &Address);
+                                             Index,
+                                             Entry);
             if (!NT_SUCCESS(status))
                 goto fail4;

@@ -857,25 +869,10 @@ FrontendDumpAddressTable(
             break;
         }
         case AF_INET6: {
-            IPV6_ADDRESS    Address;
-            CHAR            Node[sizeof ("ipv6/XXXXXXXXXX")];
-
-            RtlCopyMemory(Address.Byte,
-                          &Entry->Address.Ipv6.sin6_addr.s6_addr,
-                          IPV6_ADDRESS_LENGTH);
-
-            status =3D RtlStringCbPrintfA(Node,
-                                        sizeof (Node),
-                                        "ipv6/%u",
-                                        IpVersion6Count);
-            ASSERT(NT_SUCCESS(status));
-            if (!NT_SUCCESS(status))
-                continue;
-
             status =3D FrontendDumpIPv6Address(Frontend,
                                              Transaction,
-                                             Node,
-                                             &Address);
+                                             Index,
+                                             Entry);
             if (!NT_SUCCESS(status))
                 goto fail4;

--
2.55.0.windows.3



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 29 08:22:08 2026
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Jul 2026 08:22:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1375304.1622488 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wozYG-0002Lc-BL; Wed, 29 Jul 2026 08:22:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1375304.1622488; Wed, 29 Jul 2026 08:22:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1wozYG-0002LV-8k; Wed, 29 Jul 2026 08:22:08 +0000
Received: by outflank-mailman (input) for mailman id 1375304;
 Wed, 29 Jul 2026 08:22:07 +0000
Received: from mx.expurgate.net ([194.145.224.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <owen.smith@citrix.com>) id 1wozYF-0002LM-RK
 for win-pv-devel@lists.xenproject.org; Wed, 29 Jul 2026 08:22:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wozYF-001tED-6U
 for win-pv-devel@lists.xenproject.org; Wed, 29 Jul 2026 10:22:07 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a69b829-5cb7-0a2a0a5109dd-0a2a450a9578-14
 for <win-pv-devel@lists.xenproject.org>; Wed, 29 Jul 2026 10:22:07 +0200
Received: from [52.101.53.29]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1)
 (envelope-from <owen.smith@citrix.com>)
 id 6a69b82b-f2d2-0a2a450a0019-3465351dca79-3
 for <win-pv-devel@lists.xenproject.org>; Wed, 29 Jul 2026 10:22:06 +0200
Received: from SA6PR03MB7760.namprd03.prod.outlook.com (2603:10b6:806:43c::5)
 by DM4PR03MB6047.namprd03.prod.outlook.com (2603:10b6:5:392::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.12; Wed, 29 Jul
 2026 08:22:02 +0000
Received: from SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38]) by SA6PR03MB7760.namprd03.prod.outlook.com
 ([fe80::4d5b:a91f:46a3:4b38%3]) with mapi id 15.21.0270.009; Wed, 29 Jul 2026
 08:22:02 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AFmBW+mVc7Tv7YlHk/C6AGbf3P8P1ui8b21K3S1/khQDFOvT9aUNhhU7QjTPAtasPWcb2d1UbDMZMgErj73UyNwuScNkCP5Ot919NHnaysK0MAnf8awp2JP2ymWTOR/7CoXjBk+xSSh2CgcMA6gTKgeYQtS/dS2qnhJ0nLAClc7l8fIPcW1I5XPtLA8Jfc/yd1hxXtYKMk52Nn3ISc6fGhsGL0cFtUmTZqNXeHqtBsdUnZzYbo7mwN/rc3tEhLAfTHA7t7VzExO30O82gEFJdsi535LO7ML4zz1iD33OMsCfZP0qq3ehB6Dq/i/leagSUzQ5/29xCJxhEnLXD9Gsbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=82F9JJsV+rTtZ9cdQkkDgOYw4Vo/utWgHos4HlCk9kU=;
 b=h/q47kaeO2zqnfKh94JxuIFmdeNeQulKBQVUSBf/EUkkOIl1YFadsdreWBQvnCMctbyPwDd1gsHSF8HF3hhFDTfX8GbZF/R7EjneVoPKqPxxo8ZA4HpFtLyH8WilmKGFsDA+qlgjA+BPS9WLgOUUFfd8PXW3XRxNz7vyK7gU6ujmBBYWwQiUqxNa6xhuv47onW9L641yJVnNe42f91s2KuvXPBMDlLgxJKy/JnZLeRQ+VA2y5SycqQd1LP3+D7NfrOEyp/tjxr8y+BV4NB0r/Cd+rp4B+XX6VwNGxRomnjO2MQb/+gpzZT96IiWn62TiUz8eZTmoGrOfOrPwZ2a03A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=82F9JJsV+rTtZ9cdQkkDgOYw4Vo/utWgHos4HlCk9kU=;
 b=gnqj3PoJODo1KPhCxlVNN/rdJTo9N+WSkepIM+kD0CaKzeqWoasihB0a2vPACL38Fxyb+R3KuXdQHvmqkaG9uaRLDGlUl2KmgOhK/w+hOTPXJvtZLag7vDok3kdSeZ4KB7il2fjcx3dwmP6IG7K98GK2ptUbLtGl2o9TXIyj5XQ=
From: Owen Smith <owen.smith@citrix.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 3/3] Report IP network prefix in XenStore
Thread-Topic: [PATCH v2 3/3] Report IP network prefix in XenStore
Thread-Index: AQHdHp+pGfAliILHYk2zgX4h/h1sYbaEKWlW
Date: Wed, 29 Jul 2026 08:22:02 +0000
Message-ID:
 <SA6PR03MB77608272F3F869B1B3C84CCCFECA2@SA6PR03MB7760.namprd03.prod.outlook.com>
References:
 <1785249861.8631fc262581453bbf619ec5b2062170.19fa92f0fdb000e099@vates.tech>
 <20260728144443.289-1-ngoc-tu.dinh@vates.tech>
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f70d8000e099@vates.tech>
In-Reply-To:
 <1785249886.8631fc262581453bbf619ec5b2062170.19fa92f70d8000e099@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR03MB7760:EE_|DM4PR03MB6047:EE_
x-ms-office365-filtering-correlation-id: 4f9584ab-4bfd-4a91-f279-08deed4a77d3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|23010399003|366016|376014|38070700021|11063799006|56012099006|4143699003|10067099003|6133799003|22082099003|18002099003;
x-microsoft-antispam-message-info:
 GYcJO/2GZ8fDnuJ6COoOgZh+cR8KvjpUaB3thDffs61fQdc5pNSsx+xPLHdXZonNsye2D7DXyAwE15u4Bc/+WcnzMM50aZo2V4CsQcl9fLpt4ob21/H3/V33gHVknKS2S0UWfyOQrO0xxZRCTNaUiTX4u7IGKK2kvROnols187j75cb6FhvCSwbibRwKdaUN4cPgqDTFq/M6HG5t3BjHAJmbaqJsQslN+0mczJqtvuhHPoB9Ed6Gvx1J1v5iYUKViMJKvsHVZsAwb8yvktkdFRAfEvUKbNNXd5R/V2hbry2sSFVfgE+LTKwgaoiWXbu+KRWdQ+dK87wj57/53pRvYujam4TCa5rCZvaXpg73zC6y7f1yprE8LqMIbt+vVvTJYhI9Xewj/i+QZaeRsyD3ALgG08D0Buyp/8woAX8PDY9ZpcvyBellC2lX88JDRkEzC993v93VmqHDtYB8TH4oF+EmeIzhLH1eKSKRnCgXtdWbZmhCnKrvL81AaZB20937leNmLcpy5Nxawb1kKZqR60zxLOg7WTbP4YtnkPVSL58fS26x1z1d21GsEdUdfEoajm2hhxQG8PtgYerx4tEv+FsiWHg4D914ipCSIzhET4uKPZFHcVo4eKfEu61IOz5xes3gytwN0Ra2xrolh/wkfZSp8wLsqfty9d3K/mHGGzg=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA6PR03MB7760.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(38070700021)(11063799006)(56012099006)(4143699003)(10067099003)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?MxAHLRmPI7z4ugH26Iw21iD5bJx1j9Vf28Sp/cZcgPudXLELxGp8wU2j9Gqd?=
 =?us-ascii?Q?lJoNlVKrJZKyi6Do0JZCy3oxR4a4L/3dWNE/NMqZQ+haHPoZPacvalETkkOM?=
 =?us-ascii?Q?jXj7P4V+4/w5ge6x42VSHDV+1LK9xH5Aq9NaHR4lWbVkFpuSXW/w3lu5smsG?=
 =?us-ascii?Q?1zd0BPv5EH2X+LK9SFqdmlIzbB95Y8nCMDZcSzJ5Oi74SATNmSWJhVRp9cCE?=
 =?us-ascii?Q?/YhJZd7jdoOnVMCw1+TFqtGou5ZopfUxANfuxv1DVXcHCqOZnYNsvvJAx/Hm?=
 =?us-ascii?Q?mGP+Yiw/+TCxKqWJuxpRsVuKgxILUib6LBNGEAeiNjP6BQDztj8fCHPPmENv?=
 =?us-ascii?Q?HrJl0mXYvSLnCYe47KQcK/Ls5n4s6jJm4KDmX+MhmVGAoW8i12H3PXix1TO0?=
 =?us-ascii?Q?UEbi63V+Py3hW2xXthp5fq7fqqtxTgX+Q28hH9MOOlH469BNuF+X3wnZnQ80?=
 =?us-ascii?Q?vM/KlZBuX7khbUXNs7TDQhQJaqoRW+cHwKCEoqoefzfeztk5WU3R0owUgaFc?=
 =?us-ascii?Q?p6L2tnzxTPMvXHDX/9yzS5LrCma3k8K3qaAScCMN1v/+KON7k5RnsH5ZgqJK?=
 =?us-ascii?Q?s5n6UuEn4yRHkWC4verjG5MHn7et+RIxynIRjkba6jKX7IZrv3PRjRy2neU6?=
 =?us-ascii?Q?4f4jEqOUSu5DOllErtbh3R2cG3TclbdD47mskUdtjaq79qr1bdtcTexEoUeP?=
 =?us-ascii?Q?1aVXQPRBT1wLiB3C461wPYTp1Pbjtp/TJJT/46hB/dyegw+LvQ6PnzZjuPnW?=
 =?us-ascii?Q?Qwfj5/Ad5ODjRfBXREUG1n4HXnn8XCucfr6YXYtk18YT+We/8/tAfnu0IWD+?=
 =?us-ascii?Q?vaYOvNsc6b9k8N9+F3E5dCQRH496iHx/BG1WvKsm5HOShOUoyB519vB+CkBC?=
 =?us-ascii?Q?UvtpLDauZRyCTWZ/o4aexFZ1U9VdSSk1o7tNRQdTwqLCBCInT92gQPIMcj1D?=
 =?us-ascii?Q?YHsh4H6ERsP0Hw5WCbFoNzxtFpdgsvEGcg/fRtKou4iaAsgmE338H2moIWKB?=
 =?us-ascii?Q?KGI9QW8WSBEI0bTKsgxGLE577aXII//6LYhPORTeyROKWKglqTZFjZBoQ/q1?=
 =?us-ascii?Q?ahBo/JCkb8yRkd48EDmW8fGXtxOs0HH753HH6fGYRfrc7gcdvAkl2D+OtzvM?=
 =?us-ascii?Q?Svg2+kiF/ytCZxcCKgM6Qu5Bqdc4w01fEsiIom+K/c4tC9Hj69xOch+Y+aJR?=
 =?us-ascii?Q?q9WE9vEF+SpfhVQ1gRZLlq860ylbW/uRtJW/AJUK1QBfZdovHJ9id/cxaJxE?=
 =?us-ascii?Q?8ww7dqQCSK25R1uq5AQZ722BsHIddhtzWg40oU0lQ1V+ScCcMxLjen5uCoOx?=
 =?us-ascii?Q?ufhh3rpQBSIA1gDPdcnBBJDaFN+0y2ZBy/jrl2LS8r6yi+AuQqTOxCGeEE/Y?=
 =?us-ascii?Q?Lfo243J6GZifXmIzFiZWluUDxzoJ9X5FMpqlH2uGS7TQJ8sVhkHN0bLqGbEe?=
 =?us-ascii?Q?oKzN1BCmUwOnG7SUWuhuRFOwK30Le9Nn8N7Ia8uClly8oiiaper39EfS1Evr?=
 =?us-ascii?Q?FL4EpGQE8jKGz3LaHVThwvTpm80Dj8lmXmf35vmaQN6oGxrFnfQC7llIeSbv?=
 =?us-ascii?Q?wgSotwCob+P2hhgZtHPrECILgDOkty1M+RKz7rzZHSXChVkInVwbVTuNrfCF?=
 =?us-ascii?Q?dvJZRVqnT76pV4YHzCFV3pH/0M5no4PTgyYbvaiPJ7kSICrj8HqUd6SJKviK?=
 =?us-ascii?Q?xPR1YKopsKQx5KHsSQjhKKxnQOMAnEHBzWBPuCrYJzOeRIcg?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR03MB7760.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f9584ab-4bfd-4a91-f279-08deed4a77d3
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2026 08:22:02.6445
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GtAXssM15aEfr7wJ4tFWX5BoXRkpQrmNf4l9YU7wm4nzfS4dg3JpFAOumTgPhTV1P/Pr4EUJjMnlUy5D46Lx/g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6047
X-purgate-ID: tlsNG-4011c0/1785313326-532D8CFC-B7B97FAC/0/0
X-purgate-type: clean
X-purgate-size: 5597

Reviewed-by: Owen Smith <owen.smith@citrix.com>

________________________________________
From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> on behalf of=
 Tu Dinh <ngoc-tu.dinh@vates.tech>
Sent: 28 July 2026 3:44 PM
To: win-pv-devel@lists.xenproject.org
Cc: Tu Dinh
Subject: [PATCH v2 3/3] Report IP network prefix in XenStore

xenstore-paths.pandoc 644ea6f84510 specified a new key "~/attr/vif/
$DEVID/ipv4/$INDEX/prefix" for reporting network prefixes.

Resolve this info from MIB_UNICASTIPADDRESS_ROW.OnLinkPrefixLength for
reporting.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenvif/frontend.c | 60 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 53 insertions(+), 7 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 680a338..086d0df 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -69,6 +69,7 @@ typedef struct _XENVIF_FRONTEND_HASH {

 typedef struct _XENVIF_ADDRESS {
     SOCKADDR_INET               Address;
+    UINT8                       Prefix;
 } XENVIF_ADDRESS, *PXENVIF_ADDRESS;

 struct _XENVIF_FRONTEND {
@@ -541,7 +542,8 @@ found:
 static NTSTATUS
 FrontendInsertAddress(
     IN  PXENVIF_FRONTEND    Frontend,
-    IN  const SOCKADDR_INET *Address
+    IN  const SOCKADDR_INET *Address,
+    IN  UINT8               Prefix
     )
 {
     ULONG                   Index;
@@ -559,14 +561,16 @@ FrontendInsertAddress(
         if (Address->si_family =3D=3D AF_INET) {
             if (RtlEqualMemory(&Address->Ipv4.sin_addr.s_addr,
                                &Entry->Address.Ipv4.sin_addr.s_addr,
-                                 IPV4_ADDRESS_LENGTH))
+                                 IPV4_ADDRESS_LENGTH) &&
+                Prefix =3D=3D Entry->Prefix)
                 goto done;
         } else {
             ASSERT3U(Address->si_family, =3D=3D, AF_INET6);

             if (RtlEqualMemory(&Address->Ipv6.sin6_addr.s6_addr,
                                &Entry->Address.Ipv6.sin6_addr.s6_addr,
-                               IPV6_ADDRESS_LENGTH))
+                               IPV6_ADDRESS_LENGTH) &&
+                Prefix =3D=3D Entry->Prefix)
                 goto done;
         }
     }
@@ -585,7 +589,7 @@ FrontendInsertAddress(
     if (Frontend->AddressCount !=3D 0)
         __FrontendFree(Frontend->AddressTable);

-    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address };
+    Table[Frontend->AddressCount++] =3D (XENVIF_ADDRESS){ *Address, Prefix=
 };
     Frontend->AddressTable =3D Table;

 done:
@@ -627,7 +631,9 @@ FrontendProcessAddressTable(
             Row->Address.si_family !=3D AF_INET6)
             continue;

-        status =3D FrontendInsertAddress(Frontend, &Row->Address);
+        status =3D FrontendInsertAddress(Frontend,
+                                       &Row->Address,
+                                       Row->OnLinkPrefixLength);
         if (!NT_SUCCESS(status))
             goto fail1;
     }
@@ -685,7 +691,7 @@ FrontendDumpIPv4Address(
     _In_ PXENVIF_ADDRESS            Entry
     )
 {
-    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX")];
+    CHAR                            Node[sizeof ("ipv4/XXXXXXXXXX/prefix")=
];
     PIN_ADDR                        Address;
     NTSTATUS                        status;

@@ -711,6 +717,26 @@ FrontendDumpIPv4Address(
     if (!NT_SUCCESS(status))
         return status;

+    if (Entry->Prefix > 32)
+        return STATUS_SUCCESS;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv4/%u/prefix",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    status =3D XENBUS_STORE(Printf,
+                          &Frontend->StoreInterface,
+                          Transaction,
+                          __FrontendGetPrefix(Frontend),
+                          Node,
+                          "%hhu",
+                          Entry->Prefix);
+    if (!NT_SUCCESS(status))
+        return status;
+
     return STATUS_SUCCESS;
 }

@@ -722,7 +748,7 @@ FrontendDumpIPv6Address(
     _In_ PXENVIF_ADDRESS            Entry
     )
 {
-    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX")];
+    CHAR                            Node[sizeof ("ipv6/XXXXXXXXXX/prefix")=
];
     ULONG                           Index;
     ULONG                           Count;
     ULONG                           ZeroIndex;
@@ -810,6 +836,26 @@ FrontendDumpIPv6Address(
     if (!NT_SUCCESS(status))
         return status;

+    if (Entry->Prefix > 128)
+        return STATUS_SUCCESS;
+
+    status =3D RtlStringCbPrintfA(Node,
+                                sizeof (Node),
+                                "ipv6/%u/prefix",
+                                AddressIndex);
+    if (!NT_SUCCESS(status))
+        return status;
+
+    status =3D XENBUS_STORE(Printf,
+                          &Frontend->StoreInterface,
+                          Transaction,
+                          __FrontendGetPrefix(Frontend),
+                          Node,
+                          "%hhu",
+                          Entry->Prefix);
+    if (!NT_SUCCESS(status))
+        return status;
+
     return STATUS_SUCCESS;
 }

--
2.55.0.windows.3



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


