Visioscan Set SDK Libraries 1.0.14
Visioscan Set SDK Help documentation file for C++ and C++/CLI
 
Loading...
Searching...
No Matches
iphdr.h
1#include <pshpack1.h>
2
3// Ping result
4typedef struct ping_result
5{
6 int success;
7 int failed;
8 int timeout;
10
11// IPv4 header
12typedef struct ip_hdr
13{
14 unsigned char ip_verlen; // 4-bit IPv4 version
15 // 4-bit header length (in 32-bit words)
16 unsigned char ip_tos; // IP type of service
17 unsigned short ip_totallength; // Total length
18 unsigned short ip_id; // Unique identifier
19 unsigned short ip_offset; // Fragment offset field
20 unsigned char ip_ttl; // Time to live
21 unsigned char ip_protocol; // Protocol(TCP,UDP etc)
22 unsigned short ip_checksum; // IP checksum
23 unsigned int ip_srcaddr; // Source address
24 unsigned int ip_destaddr; // Source address
26
27// IPv4 option header
28typedef struct ipv4_option_hdr
29{
30 unsigned char opt_code; // option type
31 unsigned char opt_len; // length of the option header
32 unsigned char opt_ptr; // offset into options
33 unsigned long opt_addr[9]; // list of IPv4 addresses
35
36// ICMP header
37typedef struct icmp_hdr
38{
39 unsigned char icmp_type;
40 unsigned char icmp_code;
41 unsigned short icmp_checksum;
42 unsigned short icmp_id;
43 unsigned short icmp_sequence;
45
46// IPv6 protocol header
47typedef struct ipv6_hdr
48{
49 unsigned long ipv6_vertcflow; // 4-bit IPv6 version
50 // 8-bit traffic class
51 // 20-bit flow label
52 unsigned short ipv6_payloadlen; // payload length
53 unsigned char ipv6_nexthdr; // next header protocol value
54 unsigned char ipv6_hoplimit; // TTL
55 struct in6_addr ipv6_srcaddr; // Source address
56 struct in6_addr ipv6_destaddr; // Destination address
58
59// IPv6 fragment header
60typedef struct ipv6_fragment_hdr
61{
62 unsigned char ipv6_frag_nexthdr;
63 unsigned char ipv6_frag_reserved;
64 unsigned short ipv6_frag_offset;
65 unsigned long ipv6_frag_id;
67
68// ICMPv6 header
69typedef struct icmpv6_hdr {
70 unsigned char icmp6_type;
71 unsigned char icmp6_code;
72 unsigned short icmp6_checksum;
74
75// ICMPv6 echo request body
76typedef struct icmpv6_echo_request
77{
78 unsigned short icmp6_echo_id;
79 unsigned short icmp6_echo_sequence;
81
82// Define the UDP header
83typedef struct udp_hdr
84{
85 unsigned short src_portno; // Source port no.
86 unsigned short dst_portno; // Dest. port no.
87 unsigned short udp_length; // Udp packet length
88 unsigned short udp_checksum; // Udp checksum (optional)
89} UDP_HDR, * PUDP_HDR;
90
91// IPv4 option for record route
92#define IP_RECORD_ROUTE 0x7
93
94// ICMP6 protocol value (used in the socket call and IPv6 header)
95#define IPPROTO_ICMP6 58
96
97// ICMP types and codes
98#define ICMPV4_ECHO_REQUEST_TYPE 8
99#define ICMPV4_ECHO_REQUEST_CODE 0
100#define ICMPV4_ECHO_REPLY_TYPE 0
101#define ICMPV4_ECHO_REPLY_CODE 0
102#define ICMPV4_MINIMUM_HEADER 8
103
104// ICPM6 types and codes
105#define ICMPV6_ECHO_REQUEST_TYPE 128
106#define ICMPV6_ECHO_REQUEST_CODE 0
107#define ICMPV6_ECHO_REPLY_TYPE 129
108#define ICMPV6_ECHO_REPLY_CODE 0
109
110// Restore byte alignment back to default
111#include <poppack.h>
Definition iphdr.h:5
int timeout
Definition iphdr.h:8
int failed
Definition iphdr.h:7
int success
Definition iphdr.h:6
Definition iphdr.h:13
unsigned char ip_protocol
Definition iphdr.h:21
unsigned short ip_totallength
Definition iphdr.h:17
unsigned short ip_offset
Definition iphdr.h:19
unsigned short ip_id
Definition iphdr.h:18
unsigned char ip_verlen
Definition iphdr.h:14
unsigned int ip_srcaddr
Definition iphdr.h:23
unsigned short ip_checksum
Definition iphdr.h:22
unsigned int ip_destaddr
Definition iphdr.h:24
unsigned char ip_tos
Definition iphdr.h:16
unsigned char ip_ttl
Definition iphdr.h:20
Definition iphdr.h:29
unsigned char opt_len
Definition iphdr.h:31
unsigned long opt_addr[9]
Definition iphdr.h:33
unsigned char opt_ptr
Definition iphdr.h:32
unsigned char opt_code
Definition iphdr.h:30
Definition iphdr.h:38
unsigned short icmp_checksum
Definition iphdr.h:41
unsigned char icmp_type
Definition iphdr.h:39
unsigned char icmp_code
Definition iphdr.h:40
unsigned short icmp_id
Definition iphdr.h:42
unsigned short icmp_sequence
Definition iphdr.h:43
Definition iphdr.h:48
unsigned short ipv6_payloadlen
Definition iphdr.h:52
unsigned char ipv6_nexthdr
Definition iphdr.h:53
unsigned long ipv6_vertcflow
Definition iphdr.h:49
struct in6_addr ipv6_srcaddr
Definition iphdr.h:55
unsigned char ipv6_hoplimit
Definition iphdr.h:54
struct in6_addr ipv6_destaddr
Definition iphdr.h:56
Definition iphdr.h:61
unsigned char ipv6_frag_nexthdr
Definition iphdr.h:62
unsigned long ipv6_frag_id
Definition iphdr.h:65
unsigned short ipv6_frag_offset
Definition iphdr.h:64
unsigned char ipv6_frag_reserved
Definition iphdr.h:63
Definition iphdr.h:69
unsigned char icmp6_type
Definition iphdr.h:70
unsigned short icmp6_checksum
Definition iphdr.h:72
unsigned char icmp6_code
Definition iphdr.h:71
Definition iphdr.h:77
unsigned short icmp6_echo_id
Definition iphdr.h:78
unsigned short icmp6_echo_sequence
Definition iphdr.h:79
Definition iphdr.h:84
unsigned short udp_checksum
Definition iphdr.h:88
unsigned short src_portno
Definition iphdr.h:85
unsigned short dst_portno
Definition iphdr.h:86
unsigned short udp_length
Definition iphdr.h:87