repository: C:/dev/kvm-guest-drivers-windows
branch: master
commit 43bc20276c98dc155ed3cfc0ba0c716ae8a8e574
Author: Yan Vugenfirer <[email protected]>
Date:   Sun Nov 15 18:30:05 2009 +0200

    [WIN-GUEST_DRIVERS] Add IP checksum related missing code from the NDIS 5 
driver.
    Already was implemented in NDIS 6 driver.
    
        Signed-off-by: Yan Vugenfirer <[email protected]>

diff --git a/NetKVM/wxp/ParaNdis5-Impl.c b/NetKVM/wxp/ParaNdis5-Impl.c
index 9abbb98..0808811 100644
--- a/NetKVM/wxp/ParaNdis5-Impl.c
+++ b/NetKVM/wxp/ParaNdis5-Impl.c
@@ -86,6 +86,13 @@ NDIS_HANDLE ParaNdis_OpenNICConfiguration(PARANDIS_ADAPTER 
*pContext)
        return cfg;
 }
 
+void ParaNdis_RestoreDeviceConfigurationAfterReset(
+       PARANDIS_ADAPTER *pContext)
+{
+
+}
+
+
 /**********************************************************
 Indicates connect/disconnect events
 Parameters:
@@ -724,12 +731,14 @@ tMapperResult ParaNdis_PacketMapper(
                                tTcpIpPacketParsingResult packetReview;
                                ULONG dummyTransferSize = 0;
                                ULONG saveBuffers = res.nBuffersMapped;
+                               ULONG flags = pcrIpChecksum | pcrTcpChecksum | 
pcrFixPHChecksum;
                                PVOID pIpHeader = RtlOffsetToPointer(pBuffer, 
pContext->Offload.ipHeaderOffset);
                                res.nBuffersMapped = 0;
+                               if (pContext->bFixIPChecksum) flags |= 
pcrFixIPChecksum; 
                                packetReview = ParaNdis_CheckSumVerify(
                                        pIpHeader,
                                        lengthGet - 
pContext->Offload.ipHeaderOffset,
-                                       pcrIpChecksum | pcrTcpChecksum | 
pcrFixIPChecksum | pcrFixPHChecksum,
+                                       flags,
                                        __FUNCTION__);
                                /* uncomment to verify */
                                /*
diff --git a/NetKVM/wxp/netkvm.inf b/NetKVM/wxp/netkvm.inf
index 5b0d13f..7bdd8fe 100644
--- a/NetKVM/wxp/netkvm.inf
+++ b/NetKVM/wxp/netkvm.inf
@@ -149,6 +149,11 @@ HKR, Ndi\Params\IPPacketsCheck,            type,           
0,                      "enum"
 HKR, Ndi\Params\IPPacketsCheck\enum,"1",               0,                      
%Enable%
 HKR, Ndi\Params\IPPacketsCheck\enum,"0",               0,                      
%Disable%
 
+HKR, Ndi\Params\IPChecksumFix,         ParamDesc,      0,                      
%IPChecksumFix%
+HKR, Ndi\Params\IPChecksumFix,         Default,        0,                      
"1"
+HKR, Ndi\Params\IPChecksumFix,         type,           0,                      
"enum"
+HKR, Ndi\Params\IPChecksumFix\enum,    "1",            0,                      
%Enable%
+HKR, Ndi\Params\IPChecksumFix\enum,    "0",            0,                      
%Disable%
 
 HKR, Ndi\params\DebugLevel,                    ParamDesc,  0,          
%DebugLevel%
 HKR, Ndi\params\DebugLevel,                    type,       0,          "int"
@@ -263,6 +268,7 @@ Offload.TxTCP = "Offload Tx TCP checksum"
 OffLoad.TxUDP = "Offload Tx UDP checksum"
 Offload.TxLSO = "Offload Tx LSO"
 HwOffload = "Hardware checksumming"
+IPChecksumFix = "Fix IP checksum on LSO"
 IPPacketsCheck = "Analyze IP packets"
 PriorityVlanTag = "Priority and VLAN tagging"
 PriorityOnly = "Priority"
--
To unsubscribe from this list: send the line "unsubscribe kvm-commits" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to