NetSim Source Code Help
Loading...
Searching...
No Matches
PacketHeader.h File Reference
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
Include dependency graph for PacketHeader.h:

Go to the source code of this file.

Data Structures

struct  WINDIVERT_IPHDR
 
struct  WINDIVERT_IPV6HDR
 
struct  WINDIVERT_ICMPHDR
 
struct  WINDIVERT_ICMPV6HDR
 
struct  WINDIVERT_TCPHDR
 
struct  WINDIVERT_UDPHDR
 

Macros

#define ERROR_INVALID_PARAMETER   EINVAL
 
#define WINDIVERT_HELPER_NO_IP_CHECKSUM   1
 
#define WINDIVERT_HELPER_NO_ICMP_CHECKSUM   2
 
#define WINDIVERT_HELPER_NO_ICMPV6_CHECKSUM   4
 
#define WINDIVERT_HELPER_NO_TCP_CHECKSUM   8
 
#define WINDIVERT_HELPER_NO_UDP_CHECKSUM   16
 
#define IPV6_HDR_SIZE   40
 

Typedefs

typedef enum ICMP4_TYPEPICMP4_TYPE
 
typedef struct WINDIVERT_IPHDRPWINDIVERT_IPHDR
 
typedef struct WINDIVERT_IPV6HDRPWINDIVERT_IPV6HDR
 
typedef struct WINDIVERT_ICMPHDRPWINDIVERT_ICMPHDR
 
typedef struct WINDIVERT_ICMPV6HDRPWINDIVERT_ICMPV6HDR
 
typedef struct WINDIVERT_TCPHDRPWINDIVERT_TCPHDR
 
typedef struct WINDIVERT_UDPHDRPWINDIVERT_UDPHDR
 

Enumerations

enum  ICMP4_TYPE {
  ICMP4_ECHO_REPLY = 0 , ICMP4_DST_UNREACH = 3 , ICMP4_SOURCE_QUENCH = 4 , ICMP4_REDIRECT = 5 ,
  ICMP4_ECHO_REQUEST = 8 , ICMP4_ROUTER_ADVERT = 9 , ICMP4_ROUTER_SOLICIT = 10 , ICMP4_TIME_EXCEEDED = 11 ,
  ICMP4_PARAM_PROB = 12 , ICMP4_TIMESTAMP_REQUEST = 13 , ICMP4_TIMESTAMP_REPLY = 14 , ICMP4_MASK_REQUEST = 17 ,
  ICMP4_MASK_REPLY = 18
}
 

Functions

BOOL WinDivertHelperParsePacket (PVOID pPacket, UINT packetLen, PWINDIVERT_IPHDR *ppIpHdr, PWINDIVERT_IPV6HDR *ppIpv6Hdr, PWINDIVERT_ICMPHDR *ppIcmpHdr, PWINDIVERT_ICMPV6HDR *ppIcmpv6Hdr, PWINDIVERT_TCPHDR *ppTcpHdr, PWINDIVERT_UDPHDR *ppUdpHdr, PVOID *ppData, UINT *pDataLen)
 
UINT WinDivertHelperCalcChecksums (PVOID pPacket, UINT packetLen, UINT64 flags)
 
BOOL WinDivertHelperParseIPv4Address (const char *str, UINT32 *addr_ptr)
 
BOOL WinDivertHelperParseIPv6Address (const char *str, UINT32 *addr_ptr)
 

Macro Definition Documentation

◆ ERROR_INVALID_PARAMETER

#define ERROR_INVALID_PARAMETER   EINVAL

Definition at line 25 of file PacketHeader.h.

◆ IPV6_HDR_SIZE

#define IPV6_HDR_SIZE   40

Definition at line 110 of file PacketHeader.h.

◆ WINDIVERT_HELPER_NO_ICMP_CHECKSUM

#define WINDIVERT_HELPER_NO_ICMP_CHECKSUM   2

Definition at line 46 of file PacketHeader.h.

◆ WINDIVERT_HELPER_NO_ICMPV6_CHECKSUM

#define WINDIVERT_HELPER_NO_ICMPV6_CHECKSUM   4

Definition at line 47 of file PacketHeader.h.

◆ WINDIVERT_HELPER_NO_IP_CHECKSUM

#define WINDIVERT_HELPER_NO_IP_CHECKSUM   1

Definition at line 45 of file PacketHeader.h.

◆ WINDIVERT_HELPER_NO_TCP_CHECKSUM

#define WINDIVERT_HELPER_NO_TCP_CHECKSUM   8

Definition at line 48 of file PacketHeader.h.

◆ WINDIVERT_HELPER_NO_UDP_CHECKSUM

#define WINDIVERT_HELPER_NO_UDP_CHECKSUM   16

Definition at line 49 of file PacketHeader.h.

Typedef Documentation

◆ PICMP4_TYPE

typedef enum ICMP4_TYPE * PICMP4_TYPE

◆ PWINDIVERT_ICMPHDR

◆ PWINDIVERT_ICMPV6HDR

◆ PWINDIVERT_IPHDR

◆ PWINDIVERT_IPV6HDR

◆ PWINDIVERT_TCPHDR

◆ PWINDIVERT_UDPHDR

Enumeration Type Documentation

◆ ICMP4_TYPE

enum ICMP4_TYPE
Enumerator
ICMP4_ECHO_REPLY 
ICMP4_DST_UNREACH 
ICMP4_SOURCE_QUENCH 
ICMP4_REDIRECT 
ICMP4_ECHO_REQUEST 
ICMP4_ROUTER_ADVERT 
ICMP4_ROUTER_SOLICIT 
ICMP4_TIME_EXCEEDED 
ICMP4_PARAM_PROB 
ICMP4_TIMESTAMP_REQUEST 
ICMP4_TIMESTAMP_REPLY 
ICMP4_MASK_REQUEST 
ICMP4_MASK_REPLY 

Definition at line 59 of file PacketHeader.h.

Function Documentation

◆ WinDivertHelperCalcChecksums()

UINT WinDivertHelperCalcChecksums ( PVOID  pPacket,
UINT  packetLen,
UINT64  flags 
)

◆ WinDivertHelperParseIPv4Address()

BOOL WinDivertHelperParseIPv4Address ( const char *  str,
UINT32 addr_ptr 
)

◆ WinDivertHelperParseIPv6Address()

BOOL WinDivertHelperParseIPv6Address ( const char *  str,
UINT32 addr_ptr 
)

◆ WinDivertHelperParsePacket()

BOOL WinDivertHelperParsePacket ( PVOID  pPacket,
UINT  packetLen,
PWINDIVERT_IPHDR ppIpHdr,
PWINDIVERT_IPV6HDR ppIpv6Hdr,
PWINDIVERT_ICMPHDR ppIcmpHdr,
PWINDIVERT_ICMPV6HDR ppIcmpv6Hdr,
PWINDIVERT_TCPHDR ppTcpHdr,
PWINDIVERT_UDPHDR ppUdpHdr,
PVOID ppData,
UINT pDataLen 
)