Changeset 34088 in vbox
- Timestamp:
- Nov 15, 2010 8:35:22 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 67779
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
r33595 r34088 1114 1114 //vnetPacketDump(pState, (uint8_t*)pSgBuf->aSegs[0].pvSeg, uSize, "--> Outgoing"); 1115 1115 if (pGso) 1116 { 1117 /* Some guests (RHEL) may report HdrLen excluding transport layer header! */ 1118 if (pGso->cbHdrs < Hdr.u16CSumStart + Hdr.u16CSumOffset + 2) 1119 { 1120 Log4(("%s vnetTransmitPendingPackets: HdrLen before adjustment %d.\n", pGso->cbHdrs)); 1121 switch (pGso->u8Type) 1122 { 1123 case PDMNETWORKGSOTYPE_IPV4_TCP: 1124 case PDMNETWORKGSOTYPE_IPV6_TCP: 1125 pGso->cbHdrs = Hdr.u16CSumStart + 1126 ((PRTNETTCP)(((uint8_t*)pSgBuf->aSegs[0].pvSeg) + Hdr.u16CSumStart))->th_off * 4; 1127 break; 1128 case PDMNETWORKGSOTYPE_IPV4_UDP: 1129 pGso->cbHdrs = Hdr.u16CSumStart + sizeof(RTNETUDP); 1130 break; 1131 } 1132 /* Update GSO structure embedded into the frame */ 1133 ((PPDMNETWORKGSO)pSgBuf->pvUser)->cbHdrs = pGso->cbHdrs; 1134 Log4(("%s vnetTransmitPendingPackets: adjusted HdrLen to %d.\n", 1135 INSTANCE(pState), pGso->cbHdrs)); 1136 } 1137 Log2(("%s vnetTransmitPendingPackets: gso type=%x cbHdr=%u mss=%u" 1138 " off1=0x%x off2=0x%x\n", INSTANCE(pState), pGso->u8Type, 1139 pGso->cbHdrs, pGso->cbMaxSeg, pGso->offHdr1, pGso->offHdr2)); 1116 1140 STAM_REL_COUNTER_INC(&pState->StatTransmitGSO); 1141 } 1117 1142 else if (Hdr.u8Flags & VNETHDR_F_NEEDS_CSUM) 1118 1143 {
Note:
See TracChangeset
for help on using the changeset viewer.