1 #ifndef _GNTUN_PACKET_H_
2 #define _GNTUN_PACKET_H_
5 #include "gnunet_common.h"
6 #include "gnunet_dnsparser_lib.h"
8 GNUNET_NETWORK_STRUCT_BEGIN
13 unsigned flags:16 GNUNET_PACKED;
14 unsigned type:16 GNUNET_PACKED;
19 unsigned tclass_h:4 GNUNET_PACKED;
20 unsigned version:4 GNUNET_PACKED;
21 unsigned tclass_l:4 GNUNET_PACKED;
22 unsigned flowlbl:20 GNUNET_PACKED;
23 unsigned paylgth:16 GNUNET_PACKED;
24 unsigned nxthdr:8 GNUNET_PACKED;
25 unsigned hoplmt:8 GNUNET_PACKED;
26 unsigned char sadr[16];
27 unsigned char dadr[16];
32 unsigned hdr_lngth:4 GNUNET_PACKED;
33 unsigned version:4 GNUNET_PACKED;
35 unsigned diff_serv:8 GNUNET_PACKED;
36 unsigned tot_lngth:16 GNUNET_PACKED;
38 unsigned ident:16 GNUNET_PACKED;
39 unsigned flags:3 GNUNET_PACKED;
40 unsigned frag_off:13 GNUNET_PACKED;
42 unsigned ttl:8 GNUNET_PACKED;
43 unsigned proto:8 GNUNET_PACKED;
44 unsigned chks:16 GNUNET_PACKED;
46 uint32_t sadr GNUNET_PACKED;
47 uint32_t dadr GNUNET_PACKED;
50 #define TCP_FLAG_SYN 2
54 unsigned spt:16 GNUNET_PACKED;
55 unsigned dpt:16 GNUNET_PACKED;
56 unsigned seq:32 GNUNET_PACKED;
57 unsigned ack:32 GNUNET_PACKED;
58 unsigned off:4 GNUNET_PACKED;
59 unsigned rsv:4 GNUNET_PACKED;
60 unsigned flg:8 GNUNET_PACKED;
61 unsigned wsz:16 GNUNET_PACKED;
62 unsigned crc:16 GNUNET_PACKED;
63 unsigned urg:16 GNUNET_PACKED;
68 unsigned spt:16 GNUNET_PACKED;
69 unsigned dpt:16 GNUNET_PACKED;
70 unsigned len:16 GNUNET_PACKED;
71 unsigned crc:16 GNUNET_PACKED;
76 unsigned type:8 GNUNET_PACKED;
77 unsigned code:8 GNUNET_PACKED;
78 unsigned chks:16 GNUNET_PACKED;
80 GNUNET_NETWORK_STRUCT_END
85 struct udp_pkt udp_hdr;
89 GNUNET_NETWORK_STRUCT_BEGIN
94 struct GNUNET_MessageHeader shdr;
100 struct GNUNET_MessageHeader shdr;
102 struct ip6_hdr ip6_hdr;
103 unsigned char data[1];
108 struct GNUNET_MessageHeader shdr;
110 struct ip6_hdr ip6_hdr;
111 struct tcp_pkt tcp_hdr;
112 unsigned char data[1];
117 struct GNUNET_MessageHeader shdr;
119 struct ip6_hdr ip6_hdr;
120 struct icmp_hdr icmp_hdr;
125 struct GNUNET_MessageHeader shdr;
127 struct ip6_hdr ip6_hdr;
128 struct udp_pkt udp_hdr;
129 unsigned char data[1];
134 struct GNUNET_MessageHeader shdr;
136 struct ip6_hdr ip6_hdr;
137 struct udp_dns udp_dns;
142 struct GNUNET_MessageHeader shdr;
144 struct ip_hdr ip_hdr;
145 unsigned char data[1];
150 struct GNUNET_MessageHeader shdr;
152 struct ip_hdr ip_hdr;
153 struct udp_pkt udp_hdr;
154 unsigned char data[1];
159 struct GNUNET_MessageHeader shdr;
161 struct ip_hdr ip_hdr;
162 struct udp_dns udp_dns;
167 struct GNUNET_MessageHeader shdr;
169 struct ip_hdr ip_hdr;
170 struct tcp_pkt tcp_hdr;
171 unsigned char data[1];
176 struct GNUNET_MessageHeader shdr;
178 struct ip_hdr ip_hdr;
179 struct icmp_hdr icmp_hdr;
181 GNUNET_NETWORK_STRUCT_END