Hi,
When I call FwpsConstructIpHeaderForTransportPacket0 for icmp packet, I dont get the ttl for the ip header, it returns 0 for .
Below is my code snippet:-
Thanks,
Vipin
if (pPendedPkt->ProtocolId == IPPROTO_ICMP) {
STADRV_TUNNEL_PKT pkt = {0};
memset(&pkt, 0, sizeof(pkt));
status = FwpsConstructIpHeaderForTransportPacket0(
pClonedNbl,
pPendedPkt->IpHeaderSize,
pPendedPkt->AddressFamily,
(pPendedPkt->AddressFamily == AF_INET)
? (PUINT8)&pPendedPkt->RemoteAddrV4
: (PUINT8)&pPendedPkt->RemoteAddrV6,
(pPendedPkt->AddressFamily == AF_INET)
? (PUINT8)&pPendedPkt->LocalAddrV4
: (PUINT8)&pPendedPkt->LocalAddrV6,
pPendedPkt->ProtocolId,
pPendedPkt->EndpointHandle,
pPendedPkt->pControlData,
pPendedPkt->ControlDataLength,
0,
NULL,
pPendedPkt->InterfaceIndex,
pPendedPkt->SubInterfaceIndex);
if (!NT_SUCCESS(status)) {
DBG_TRACE(
DBG_FLAG_ERROR,
"%s: FwpsConstructIpHeaderForTransportPacket0 failed. Status "
"= 0x%08x\n",
__FUNCTION__,
status);
}
}