/vbox/include/VBox/vmm/ |
H A D | pdmnetinline.h | 61 * @param pGso The GSO context. 66 DECLINLINE(bool) PDMNetGsoIsValid(PCPDMNETWORKGSO pGso, size_t cbGsoMax, size_t cbFrame) argument 70 if (RT_UNLIKELY(cbGsoMax < sizeof(*pGso))) 73 enmType = (PDMNETWORKGSOTYPE)pGso->u8Type; 78 if (RT_UNLIKELY( pGso->offHdr1 < sizeof(RTNETETHERHDR) )) 80 if (RT_UNLIKELY( pGso->offHdr2 <= pGso->offHdr1 )) 82 if (RT_UNLIKELY( pGso->cbHdrsTotal <= pGso->offHdr2 )) 90 if (RT_UNLIKELY( (unsigned)pGso 153 pdmNetSegHdrLen(PCPDMNETWORKGSO pGso, uint32_t iSeg) argument 171 pdmNetSegPayloadLen(PCPDMNETWORKGSO pGso, uint32_t iSeg, uint32_t cSegs, uint32_t cbFrame) argument 186 PDMNetGsoCalcSegmentCount(PCPDMNETWORKGSO pGso, size_t cbFrame) argument 400 PDMNetGsoCarveSegmentQD(PCPDMNETWORKGSO pGso, uint8_t *pbFrame, size_t cbFrame, uint8_t *pbHdrScatch, uint32_t iSeg, uint32_t cSegs, uint32_t *pcbSegFrame) argument 501 PDMNetGsoCarveSegment(PCPDMNETWORKGSO pGso, const uint8_t *pbFrame, size_t cbFrame, uint32_t iSeg, uint32_t cSegs, uint8_t *pbSegHdrs, uint32_t *pcbSegHdrs, uint32_t *pcbSegPayload) argument 584 PDMNetGsoPrepForDirectUse(PCPDMNETWORKGSO pGso, void *pvFrame, size_t cbFrame, PDMNETCSUMTYPE enmCsumType) argument [all...] |
H A D | pdmnetifs.h | 147 * @param pGso Segmentation context. 151 DECLR3CALLBACKMEMBER(int, pfnReceiveGso,(PPDMINETWORKDOWN pInterface, const void *pvBuf, size_t cb, PCPDMNETWORKGSO pGso)); 241 * @param pGso Pointer to a GSO context (only reference while in 245 * pointing to a copy of @a pGso. 251 DECLR3CALLBACKMEMBER(int, pfnAllocBuf,(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, 333 DECLR0CALLBACKMEMBER(int, pfnAllocBuf,(PPDMINETWORKUPR0 pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, 351 DECLRCCALLBACKMEMBER(int, pfnAllocBuf,(PPDMINETWORKUPRC pInterface, size_t cbMin, PCPDMNETWORKGSO pGso,
|
/vbox/src/VBox/Devices/Network/ |
H A D | Pcap.h | 28 int PcapStreamGsoFrame(PRTSTREAM pStream, uint64_t StartNanoTS, PCPDMNETWORKGSO pGso, 33 int PcapFileGsoFrame(RTFILE File, uint64_t StartNanoTS, PCPDMNETWORKGSO pGso,
|
H A D | DevVirtioNet.cpp | 785 PCPDMNETWORKGSO pGso) 791 if (pGso) 794 " off1=0x%x off2=0x%x\n", INSTANCE(pThis), pGso->u8Type, 795 pGso->cbHdrsTotal, pGso->cbHdrsSeg, pGso->cbMaxSeg, pGso->offHdr1, pGso->offHdr2)); 797 switch (pGso->u8Type) 814 Hdr.Hdr.u16HdrLen = pGso 784 vnetHandleRxPacket(PVNETSTATE pThis, const void *pvBuf, size_t cb, PCPDMNETWORKGSO pGso) argument 915 vnetNetworkDown_ReceiveGso(PPDMINETWORKDOWN pInterface, const void *pvBuf, size_t cb, PCPDMNETWORKGSO pGso) argument 1080 vnetSetupGsoCtx(PPDMNETWORKGSO pGso, VNETHDR const *pHdr) argument 1208 PDMNETWORKGSO Gso, *pGso; local [all...] |
H A D | Pcap.cpp | 142 * @param pGso Pointer to the GSO context. 148 int PcapStreamGsoFrame(PRTSTREAM pStream, uint64_t StartNanoTS, PCPDMNETWORKGSO pGso, argument 156 uint32_t const cSegs = PDMNetGsoCalcSegmentCount(pGso, cbFrame); 160 uint32_t offSegPayload = PDMNetGsoCarveSegment(pGso, pbFrame, cbFrame, iSeg, cSegs, abHdrs, &cbHdrs, &cbSegPayload); 222 * @param pGso Pointer to the GSO context. 228 int PcapFileGsoFrame(RTFILE File, uint64_t StartNanoTS, PCPDMNETWORKGSO pGso, argument 236 uint32_t const cSegs = PDMNetGsoCalcSegmentCount(pGso, cbFrame); 240 uint32_t offSegPayload = PDMNetGsoCarveSegment(pGso, pbFrame, cbFrame, iSeg, cSegs, abHdrs, &cbHdrs, &cbSegPayload);
|
H A D | DrvIntNet.cpp | 361 PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) 391 if (pGso) 392 rc = IntNetRingAllocateGsoFrame(&pThis->CTX_SUFF(pBuf)->Send, (uint32_t)cbMin, pGso, 402 if (pGso) 403 rc = IntNetRingAllocateGsoFrame(&pThis->CTX_SUFF(pBuf)->Send, (uint32_t)cbMin, pGso, 419 pSgBuf->pvUser = pGso ? (PPDMNETWORKGSO)pSgBuf->aSegs[0].pvSeg - 1 : NULL; 746 PCPDMNETWORKGSO pGso = IntNetHdrGetGsoContext(pHdr, pBuf); local 747 if (PDMNetGsoIsValid(pGso, cbFrame, cbFrame - sizeof(PDMNETWORKGSO))) 751 (uint8_t *)(pGso + 1), 753 pGso))) 360 drvIntNetUp_AllocBuf(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) argument [all...] |
H A D | DrvUDPTunnel.cpp | 127 PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) 139 + (pGso ? RT_ALIGN_Z(sizeof(*pGso), 16) : 0)); 150 if (!pGso) 155 *(PPDMNETWORKGSO)pSgBuf->pvUser = *pGso; 221 PCPDMNETWORKGSO pGso = (PCPDMNETWORKGSO)pSgBuf->pvUser; local 222 uint32_t const cSegs = PDMNetGsoCalcSegmentCount(pGso, pSgBuf->cbUsed); Assert(cSegs > 1); 227 void *pvSegFrame = PDMNetGsoCarveSegmentQD(pGso, (uint8_t *)pbFrame, pSgBuf->cbUsed, abHdrScratch, 126 drvUDPTunnelUp_AllocBuf(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) argument
|
H A D | DrvVDE.cpp | 136 PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) 148 + (pGso ? RT_ALIGN_Z(sizeof(*pGso), 16) : 0)); 159 if (!pGso) 164 *(PPDMNETWORKGSO)pSgBuf->pvUser = *pGso; 233 PCPDMNETWORKGSO pGso = (PCPDMNETWORKGSO)pSgBuf->pvUser; local 234 uint32_t const cSegs = PDMNetGsoCalcSegmentCount(pGso, pSgBuf->cbUsed); Assert(cSegs > 1); 239 void *pvSegFrame = PDMNetGsoCarveSegmentQD(pGso, (uint8_t *)pbFrame, pSgBuf->cbUsed, abHdrScratch, 135 drvVDENetworkUp_AllocBuf(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) argument
|
H A D | DrvDedicatedNic.cpp | 194 PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) 225 if (!pGso) 233 pThis->XmitGso = *pGso; 193 drvDedicatedNicUp_AllocBuf(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) argument
|
H A D | DrvNetShaper.cpp | 122 PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) 141 return pThis->CTX_SUFF(pIBelowNet)->pfnAllocBuf(pThis->CTX_SUFF(pIBelowNet), cbMin, pGso, ppSgBuf); 231 static DECLCALLBACK(int) drvR3NetShaperDown_ReceiveGso(PPDMINETWORKDOWN pInterface, const void *pvBuf, size_t cb, PCPDMNETWORKGSO pGso) argument 235 return pThis->pIAboveNet->pfnReceiveGso(pThis->pIAboveNet, pvBuf, cb, pGso); 121 drvNetShaperUp_AllocBuf(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) argument
|
H A D | DrvTAP.cpp | 167 PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) 179 + (pGso ? RT_ALIGN_Z(sizeof(*pGso), 16) : 0)); 190 if (!pGso) 195 *(PPDMNETWORKGSO)pSgBuf->pvUser = *pGso; 262 PCPDMNETWORKGSO pGso = (PCPDMNETWORKGSO)pSgBuf->pvUser; local 263 uint32_t const cSegs = PDMNetGsoCalcSegmentCount(pGso, pSgBuf->cbUsed); Assert(cSegs > 1); 268 void *pvSegFrame = PDMNetGsoCarveSegmentQD(pGso, (uint8_t *)pbFrame, pSgBuf->cbUsed, abHdrScratch, 166 drvTAPNetworkUp_AllocBuf(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) argument
|
H A D | DrvNAT.cpp | 417 PCPDMNETWORKGSO pGso = (PCPDMNETWORKGSO)pSgBuf->pvUser; local 418 uint32_t const cSegs = PDMNetGsoCalcSegmentCount(pGso, pSgBuf->cbUsed); Assert(cSegs > 1); 423 m = slirp_ext_m_get(pThis->pNATState, pGso->cbHdrsTotal + pGso->cbMaxSeg, &pvSeg, &cbSeg); 429 uint32_t offPayload = PDMNetGsoCarveSegment(pGso, pbFrame, pSgBuf->cbUsed, 436 void *pvSegFrame = PDMNetGsoCarveSegmentQD(pGso, (uint8_t *)pbFrame, pSgBuf->cbUsed, abHdrScratch, 469 PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) 489 if (!pGso) 515 if (pGso->cbHdrsTotal + pGso 468 drvNATNetworkUp_AllocBuf(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) argument [all...] |
H A D | DrvNetSniffer.cpp | 103 PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) 108 return pThis->pIBelowNet->pfnAllocBuf(pThis->pIBelowNet, cbMin, pGso, ppSgBuf); 102 drvNetSnifferUp_AllocBuf(PPDMINETWORKUP pInterface, size_t cbMin, PCPDMNETWORKGSO pGso, PPPDMSCATTERGATHER ppSgBuf) argument
|
H A D | DevE1000.cpp | 3364 * @param pGso The GSO context to setup. 3367 DECLINLINE(void) e1kSetupGsoCtx(PPDMNETWORKGSO pGso, E1KTXCTX const *pCtx) argument 3369 pGso->u8Type = PDMNETWORKGSOTYPE_INVALID; 3437 pGso->u8Type = PDMNETWORKGSOTYPE_IPV4_TCP; 3438 pGso->cbHdrsSeg = pCtx->dw3.u8HDRLEN; 3442 pGso->u8Type = PDMNETWORKGSOTYPE_IPV4_UDP; 3443 pGso->cbHdrsSeg = pCtx->tu.u8CSS; /* IP header only */ 3450 pGso->cbHdrsSeg = pCtx->dw3.u8HDRLEN; /* @todo IPv6 UFO */ 3452 pGso->u8Type = PDMNETWORKGSOTYPE_IPV6_TCP; 3454 pGso 3473 e1kCanDoGso(PE1KSTATE pThis, PCPDMNETWORKGSO pGso, E1KTXDAT const *pData, E1KTXCTX const *pCtx) argument [all...] |
H A D | SrvIntNetR0.cpp | 3894 PPDMNETWORKGSO pGso = IntNetHdrGetGsoContext(pHdr, pIf->pIntBuf); 3895 uint32_t cbFrame = pHdr->cbFrame - sizeof(*pGso); 3896 if (RT_LIKELY(PDMNetGsoIsValid(pGso, pHdr->cbFrame, cbFrame))) 3898 void *pvCurFrame = pGso + 1; 3899 IntNetSgInitTempGso(&Sg, pvCurFrame, cbFrame, pGso);
|
/vbox/src/VBox/NetworkServices/NetLib/ |
H A D | VBoxNetUDP.cpp | 70 PCPDMNETWORKGSO pGso = NULL; local 73 pGso = (PCPDMNETWORKGSO)pvFrame; 74 if (!PDMNetGsoIsValid(pGso, cbFrame, cbFrame - sizeof(*pGso))) 78 if (pGso->u8Type != PDMNETWORKGSOTYPE_IPV4_UDP) 80 pvFrame = pGso + 1; 81 cbFrame -= sizeof(*pGso); 124 if (pGso) 125 PDMNetGsoPrepForDirectUse(pGso, (void *)pvFrame, cbFrame, PDMNETCSUMTYPE_NONE); 140 if (!RTNetIPv4IsHdrValid(pIpHdr, cbFrame - offIpHdr, cbFrame - offIpHdr, !pGso /*fChecksu [all...] |
H A D | VBoxNetBaseService.cpp | 745 PCPDMNETWORKGSO pGso = IntNetHdrGetGsoContext(pHdr, m->m_pIfBuf); local 746 rc = processGSO(pGso, cbFrame);
|
/vbox/include/VBox/ |
H A D | intnetinline.h | 103 * @param pGso The GSO context. 106 unsigned cSegsUsed, PCPDMNETWORKGSO pGso) 114 pSG->GsoCtx.u8Type = pGso->u8Type; 115 pSG->GsoCtx.cbHdrsTotal = pGso->cbHdrsTotal; 116 pSG->GsoCtx.cbHdrsSeg = pGso->cbHdrsSeg; 117 pSG->GsoCtx.cbMaxSeg= pGso->cbMaxSeg; 118 pSG->GsoCtx.offHdr1 = pGso->offHdr1; 119 pSG->GsoCtx.offHdr2 = pGso->offHdr2; 156 * @param pGso The GSO context. 158 DECLINLINE(void) IntNetSgInitTempGso(PINTNETSG pSG, void *pvFrame, uint32_t cbFrame, PCPDMNETWORKGSO pGso) argument 105 IntNetSgInitTempSegsGso(PINTNETSG pSG, uint32_t cbTotal, unsigned cSegs, unsigned cSegsUsed, PCPDMNETWORKGSO pGso) argument 353 PPDMNETWORKGSO pGso = (PPDMNETWORKGSO)((uint8_t *)pHdr + pHdr->offFrame); local 516 IntNetRingAllocateGsoFrame(PINTNETRINGBUF pRingBuf, uint32_t cbFrame, PCPDMNETWORKGSO pGso, PINTNETHDR *ppHdr, void **ppvFrame) argument [all...] |
/vbox/src/VBox/Devices/Network/testcase/ |
H A D | tstIntNet-1.cpp | 544 PCPDMNETWORKGSO pGso = IntNetHdrGetGsoContext(pHdr, pBuf); local 546 if (PDMNetGsoIsValid(pGso, cbFrame, cbFrame - sizeof(*pGso))) 548 const void *pvFrame = pGso + 1; 550 cbFrame -= sizeof(pGso); 553 PcapStreamGsoFrame(pFileRaw, g_StartTS, pGso, pvFrame, cbFrame, 0xffff); 565 RTPrintf("tstIntNet-1: Bad GSO frame: %Rhxs\n", sizeof(*pGso), pGso);
|
/vbox/src/VBox/NetworkServices/NAT/ |
H A D | VBoxNetLwipNAT.cpp | 1025 int VBoxNetLwipNAT::processGSO(PCPDMNETWORKGSO pGso, size_t cbFrame) 1027 if (!PDMNetGsoIsValid(pGso, cbFrame, 1033 uint32_t const cSegs = PDMNetGsoCalcSegmentCount(pGso, 1039 PDMNetGsoCarveSegmentQD(pGso, 1040 (uint8_t *)(pGso + 1),
|