1 #ifndef _GNTUN_PACKET_H_
2 #define _GNTUN_PACKET_H_
4 #include "gnunet-vpn-helper-p.h"
5 #include "gnunet_common.h"
9 unsigned flags:16 GNUNET_PACKED;
10 unsigned type:16 GNUNET_PACKED;
14 unsigned version:4 GNUNET_PACKED;
15 unsigned tclass:8 GNUNET_PACKED;
16 unsigned flowlbl:20 GNUNET_PACKED;
17 unsigned paylgth:16 GNUNET_PACKED;
18 unsigned nxthdr:8 GNUNET_PACKED;
19 unsigned hoplmt:8 GNUNET_PACKED;
20 unsigned char sadr[16];
21 unsigned char dadr[16];
25 unsigned spt:16 GNUNET_PACKED;
26 unsigned dpt:16 GNUNET_PACKED;
27 unsigned seq:32 GNUNET_PACKED;
28 unsigned ack:32 GNUNET_PACKED;
29 unsigned off:4 GNUNET_PACKED;
30 unsigned rsv:4 GNUNET_PACKED;
31 unsigned flg:8 GNUNET_PACKED;
32 unsigned wsz:16 GNUNET_PACKED;
33 unsigned crc:16 GNUNET_PACKED;
34 unsigned urg:16 GNUNET_PACKED;
38 unsigned spt:16 GNUNET_PACKED;
39 unsigned dpt:16 GNUNET_PACKED;
40 unsigned len:16 GNUNET_PACKED;
41 unsigned crc:16 GNUNET_PACKED;
46 unsigned short id GNUNET_PACKED;
48 unsigned rd:1 GNUNET_PACKED; // recursion desired (client -> server)
49 unsigned tc:1 GNUNET_PACKED; // message is truncated
50 unsigned aa:1 GNUNET_PACKED; // authoritative answer
51 unsigned op:4 GNUNET_PACKED; // query:0, inverse q.:1, status: 2
52 unsigned qr:1 GNUNET_PACKED; // query:0, response:1
54 unsigned rcode:4 GNUNET_PACKED; // 0 No error
60 unsigned z:3 GNUNET_PACKED; // reserved
61 unsigned ra:1 GNUNET_PACKED; // recursion available (server -> client)
63 unsigned short qdcount GNUNET_PACKED; // number of questions
64 unsigned short ancount GNUNET_PACKED; // number of answers
65 unsigned short nscount GNUNET_PACKED; // number of authority-records
66 unsigned short arcount GNUNET_PACKED; // number of additional records
67 unsigned char data[1];
73 unsigned short qclass;
81 unsigned short data_len;
87 struct GNUNET_MessageHeader shdr;
89 struct ip6_hdr ip6_hdr;
90 unsigned char data[1];
94 struct GNUNET_MessageHeader shdr;
96 struct ip6_hdr ip6_hdr;
97 struct tcp_pkt tcp_hdr;
98 unsigned char data[1];
102 struct GNUNET_MessageHeader shdr;
104 struct ip6_hdr ip6_hdr;
105 struct udp_pkt udp_hdr;
106 unsigned char data[1];
110 struct GNUNET_MessageHeader shdr;
112 struct ip6_hdr ip6_hdr;
113 struct udp_pkt udp_hdr;