VirtualBox

Ticket #6872: diff_vboxnetflt

File diff_vboxnetflt, 1015 bytes (added by Frank Mehnert, 14 years ago)

Patch for /usr/src/vboxneflt

Line 
1--- linux/VBoxNetFlt-linux.c (revision 62554)
2+++ linux/VBoxNetFlt-linux.c (revision 62555)
3@@ -1102,7 +1102,10 @@
4 pShInfo->gso_size = pSG->GsoCtx.cbMaxSeg;
5 pShInfo->gso_segs = PDMNetGsoCalcSegmentCount(&pSG->GsoCtx, pSG->cbTotal);
6
7- if (fDstWire)
8+ /*
9+ * We need to set checksum fields even if the packet goes to the host
10+ * directly as it may be immediately forwared by IP layer.
11+ */
12 {
13 Assert(skb_headlen(pPkt) >= pSG->GsoCtx.cbHdrs);
14 pPkt->ip_summed = CHECKSUM_PARTIAL;
15@@ -1120,12 +1123,8 @@
16 pPkt->csum = RT_OFFSETOF(RTNETUDP, uh_sum);
17 # endif
18 }
19- else
20- {
21- pPkt->ip_summed = CHECKSUM_UNNECESSARY;
22- pPkt->csum = 0;
23+ if (!fDstWire)
24 PDMNetGsoPrepForDirectUse(&pSG->GsoCtx, pPkt->data, pSG->cbTotal, false /*fPayloadChecksum*/);
25- }
26 }
27 #endif /* VBOXNETFLT_WITH_GSO_XMIT_WIRE || VBOXNETFLT_WITH_GSO_XMIT_HOST */
28

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy