/vbox/src/VBox/Runtime/common/checksum/ |
H A D | ipv6.cpp | 76 * @param pIpHdr The IPv6 header (network endian (big)). 78 RTDECL(uint32_t) RTNetIPv6PseudoChecksum(PCRTNETIPV6 pIpHdr) argument 80 return rtNetIPv6PseudoChecksumBits(&pIpHdr->ip6_src, &pIpHdr->ip6_dst, 81 pIpHdr->ip6_nxt, RT_N2H_U16(pIpHdr->ip6_plen)); 90 * @param pIpHdr The IPv6 header (network endian (big)). 99 RTDECL(uint32_t) RTNetIPv6PseudoChecksumEx(PCRTNETIPV6 pIpHdr, uint8_t bProtocol, uint16_t cbPkt) argument 101 return rtNetIPv6PseudoChecksumBits(&pIpHdr->ip6_src, &pIpHdr [all...] |
H A D | ipv4.cpp | 42 * @param pIpHdr Pointer to the IPv4 header to checksum, network endian (big). 45 RTDECL(uint16_t) RTNetIPv4HdrChecksum(PCRTNETIPV4 pIpHdr) argument 47 uint16_t const *paw = (uint16_t const *)pIpHdr; 59 if (pIpHdr->ip_hl > 20 / 4) 62 switch (pIpHdr->ip_hl) 92 * @param pIpHdr Pointer to the IPv4 header to validate. Network endian (big). 93 * @param cbHdrMax The max header size, or the max size of what pIpHdr points 96 * to be mapped following pIpHdr. 99 RTDECL(bool) RTNetIPv4IsHdrValid(PCRTNETIPV4 pIpHdr, size_t cbHdrMax, size_t cbPktMax, bool fChecksum) argument 107 if (RT_UNLIKELY(pIpHdr 139 rtNetIPv4PseudoChecksum(PCRTNETIPV4 pIpHdr) argument 162 RTNetIPv4PseudoChecksum(PCRTNETIPV4 pIpHdr) argument 420 RTNetIPv4UDPChecksum(PCRTNETIPV4 pIpHdr, PCRTNETUDP pUdpHdr, void const *pvData) argument 441 rtNetIPv4IsUDPSizeValid(PCRTNETIPV4 pIpHdr, PCRTNETUDP pUdpHdr, size_t cbPktMax) argument 467 RTNetIPv4IsUDPSizeValid(PCRTNETIPV4 pIpHdr, PCRTNETUDP pUdpHdr, size_t cbPktMax) argument 486 RTNetIPv4IsUDPValid(PCRTNETIPV4 pIpHdr, PCRTNETUDP pUdpHdr, void const *pvData, size_t cbPktMax, bool fChecksum) argument 513 RTNetIPv4TCPChecksum(PCRTNETIPV4 pIpHdr, PCRTNETTCP pTcpHdr, void const *pvData) argument 562 rtNetIPv4IsTCPSizeValid(PCRTNETIPV4 pIpHdr, PCRTNETTCP pTcpHdr, size_t cbHdrMax, size_t cbPktMax) argument 594 RTNetIPv4IsTCPSizeValid(PCRTNETIPV4 pIpHdr, PCRTNETTCP pTcpHdr, size_t cbHdrMax, size_t cbPktMax) argument 616 RTNetIPv4IsTCPValid(PCRTNETIPV4 pIpHdr, PCRTNETTCP pTcpHdr, size_t cbHdrMax, void const *pvData, size_t cbPktMax, bool fChecksum) argument [all...] |
/vbox/src/VBox/Devices/Network/testcase/ |
H A D | tstIntNet-1.cpp | 112 PCRTNETIPV4 pIpHdr = (PCRTNETIPV4)pbCur; local 113 if (!RTNetIPv4IsHdrValid(pIpHdr, cbLeft, cbLeft, !fGso /*fChecksum*/)) 115 pbCur += pIpHdr->ip_hl * 4; 116 cbLeft -= pIpHdr->ip_hl * 4; 119 switch (pIpHdr->ip_p) 131 if (!RTNetIPv4IsUDPValid(pIpHdr, pUdpHdr, pUdpHdr + 1, cbLeft, !fGso /*fChecksum*/)) 150 if (!RTNetIPv4IsTCPValid(pIpHdr, pTcpHdr, cbLeft, NULL, cbLeft, !fGso /*fChecksum*/)) 243 PRTNETIPV4 pIpHdr = (PRTNETIPV4) (pEthHdr + 1); local 244 PRTNETUDP pUdpHdr = (PRTNETUDP) (pIpHdr + 1); 303 pIpHdr 368 PRTNETIPV4 pIpHdr = (PRTNETIPV4) (pEthHdr + 1); local 486 PCRTNETIPV4 pIpHdr = (PCRTNETIPV4)(pEthHdr + 1); local [all...] |
/vbox/src/VBox/NetworkServices/NetLib/ |
H A D | VBoxNetUDP.cpp | 130 PCRTNETIPV4 pIpHdr = (PCRTNETIPV4)(pEthHdr + 1); local 132 pHdrs->pIpv4 = pIpHdr; 135 if (pIpHdr->ip_p != RTNETIPV4_PROT_UDP) 139 size_t const offIpHdr = (uintptr_t)pIpHdr - (uintptr_t)pEthHdr; 140 if (!RTNetIPv4IsHdrValid(pIpHdr, cbFrame - offIpHdr, cbFrame - offIpHdr, !pGso /*fChecksum*/)) 146 PCRTNETUDP pUdpHdr = (PCRTNETUDP)((uint32_t *)pIpHdr + pIpHdr->ip_hl); 160 if (!RTNetIPv4IsUDPValid(pIpHdr, pUdpHdr, pUdpHdr + 1, cbFrame - offUdpHdr, true /*fChecksum*/)) 168 if (!RTNetIPv4IsUDPSizeValid(pIpHdr, pUdpHdr, cbFrame - offUdpHdr))
|
/vbox/include/iprt/ |
H A D | net.h | 352 RTDECL(uint16_t) RTNetIPv4HdrChecksum(PCRTNETIPV4 pIpHdr); variable 353 RTDECL(bool) RTNetIPv4IsHdrValid(PCRTNETIPV4 pIpHdr, size_t cbHdrMax, size_t cbPktMax, bool fChecksum); 354 RTDECL(uint32_t) RTNetIPv4PseudoChecksum(PCRTNETIPV4 pIpHdr); variable 393 RTDECL(uint32_t) RTNetIPv6PseudoChecksum(PCRTNETIPV6 pIpHdr); variable 394 RTDECL(uint32_t) RTNetIPv6PseudoChecksumEx(PCRTNETIPV6 pIpHdr, uint8_t bProtocol, uint16_t cbPkt); 426 RTDECL(uint16_t) RTNetIPv4UDPChecksum(PCRTNETIPV4 pIpHdr, PCRTNETUDP pUdpHdr, void const *pvData); 427 RTDECL(bool) RTNetIPv4IsUDPSizeValid(PCRTNETIPV4 pIpHdr, PCRTNETUDP pUdpHdr, size_t cbPktMax); 428 RTDECL(bool) RTNetIPv4IsUDPValid(PCRTNETIPV4 pIpHdr, PCRTNETUDP pUdpHdr, void const *pvData, size_t cbPktMax, bool fChecksum); 700 RTDECL(uint16_t) RTNetIPv4TCPChecksum(PCRTNETIPV4 pIpHdr, PCRTNETTCP pTcpHdr, void const *pvData); 701 RTDECL(bool) RTNetIPv4IsTCPSizeValid(PCRTNETIPV4 pIpHdr, PCRTNETTC [all...] |
/vbox/include/VBox/vmm/ |
H A D | pdmnetinline.h | 326 PRTNETIPV6 pIpHdr = (PRTNETIPV6)&pbSegHdrs[offIpHdr]; local 328 pIpHdr->ip6_plen = RT_H2N_U16(cbPayload); 329 return RTNetIPv6PseudoChecksumEx(pIpHdr, bProtocol, (uint16_t)(cbHdrs - offPktHdr + cbSegPayload)); 347 PRTNETIPV4 pIpHdr = (PRTNETIPV4)&pbSegHdrs[offIpHdr]; local 348 pIpHdr->ip_len = RT_H2N_U16(cbHdrs - offIpHdr + cbSegPayload); 349 pIpHdr->ip_id = RT_H2N_U16(RT_N2H_U16(pIpHdr->ip_id) + iSeg); 350 pIpHdr->ip_sum = RTNetIPv4HdrChecksum(pIpHdr); 351 return RTNetIPv4PseudoChecksum(pIpHdr); 370 PRTNETIPV4 pIpHdr = (PRTNETIPV4)&pbSegHdrs[offIpHdr]; local [all...] |
/vbox/src/VBox/Devices/Network/ |
H A D | SrvIntNetR0.cpp | 2062 * @param pIpHdr Pointer to a valid IP header. This is for pseudo 2069 static void intnetR0NetworkSnoopDhcp(PINTNETNETWORK pNetwork, PCRTNETIPV4 pIpHdr, PCRTNETUDP pUdpHdr, uint32_t cbUdpPkt) 2074 if (!RTNetIPv4IsUDPValid(pIpHdr, pUdpHdr, pUdpHdr + 1, cbUdpPkt, true /*fCheckSum*/)) 2205 PCRTNETIPV4 pIpHdr = (PCRTNETIPV4)((PCRTNETETHERHDR)pSG->aSegs[0].pv + 1); 2214 pIpHdr = (PCRTNETIPV4)pNetwork->pbTmp; 2220 if (!RTNetIPv4IsHdrValid(pIpHdr, cbPacket, pSG->cbTotal - sizeof(RTNETETHERHDR), true /*fChecksum*/)) 2225 uint32_t cbIpHdr = pIpHdr->ip_hl * 4; 2230 intnetR0NetworkSnoopDhcp(pNetwork, pIpHdr, (PCRTNETUDP)((uintptr_t)pIpHdr + cbIpHdr), cbPacket - cbIpHdr); 2327 PCRTNETIPV4 pIpHdr [all...] |
H A D | DevE1000.cpp | 3986 struct E1kIpHeader *pIpHdr = (struct E1kIpHeader *) local 4032 pIpHdr->total_len = htons(pThis->u16TxPktLen - pThis->contextTSE.ip.u8CSS); 4033 E1kLog3(("%s e1kFallbackAddSegment: End of packet, pIpHdr->total_len=%x\n", 4034 pThis->szPrf, ntohs(pIpHdr->total_len))); 4036 pIpHdr->chksum = 0; 4082 pIpHdr->ident = htons(ntohs(pIpHdr->ident) + 1); 4093 struct E1kIpHeader *pIpHdr = (struct E1kIpHeader *) local 4139 pIpHdr->total_len = htons(pThis->u16TxPktLen - pThis->contextTSE.ip.u8CSS); 4140 E1kLog3(("%s e1kFallbackAddSegment: End of packet, pIpHdr [all...] |
/vbox/src/VBox/HostDrivers/VBoxNetFlt/solaris/ |
H A D | VBoxNetFlt-solaris.c | 3620 PRTNETIPV4 pIpHdr = (PRTNETIPV4)pbProtocol; 3621 size_t cbPayload = cbIpPacket - (pIpHdr->ip_hl << 2); 3623 if (RTNetIPv4IsHdrValid(pIpHdr, cbPayload, cbPayload)) 3625 pbProtocol += (pIpHdr->ip_hl << 2); 3630 if (pIpHdr->ip_p == RTNETIPV4_PROT_TCP) 3633 uint16_t TcpChecksum = RTNetIPv4TCPChecksum(pIpHdr, pTcpHdr, NULL); 3641 else if (pIpHdr->ip_p == RTNETIPV4_PROT_UDP) 3644 uint16_t UdpChecksum = RTNetIPv4UDPChecksum(pIpHdr, pUdpHdr, pUdpHdr + 1); 3697 PRTNETIPV4 pIpHdr = (PRTNETIPV4)(pEthHdr + 1); 3701 if (pIpHdr [all...] |
H A D | VBoxNetFltBow-solaris.c | 586 PRTNETIPV4 pIpHdr = (PRTNETIPV4)(pEthHdr + 1); 589 if (pIpHdr->ip_p == RTNETIPV4_PROT_ICMP) 591 else if (pIpHdr->ip_p == RTNETIPV4_PROT_TCP) 593 else if (pIpHdr->ip_p == RTNETIPV4_PROT_UDP) 595 PCRTNETUDP pUdpHdr = (PCRTNETUDP)((uint32_t *)pIpHdr + pIpHdr->ip_hl); 600 RT_BE2H_U16(pUdpHdr->uh_sum), RT_BE2H_U16(RTNetIPv4UDPChecksum(pIpHdr, pUdpHdr, pUdpHdr + 1))));
|