diff options
author | Philipp Tölke <toelke@in.tum.de> | 2010-07-20 08:17:12 +0000 |
---|---|---|
committer | Philipp Tölke <toelke@in.tum.de> | 2010-07-20 08:17:12 +0000 |
commit | a6e1023d634f732e986176fcfa304c65239e0e50 (patch) | |
tree | 17aab068c73fa24aede63d39b4e26f2d24458368 /src/vpn/gnunet-vpn-packet.h | |
parent | 003525498eea3350f03573eb0552de60f745e44f (diff) | |
download | gnunet-a6e1023d634f732e986176fcfa304c65239e0e50.tar.gz gnunet-a6e1023d634f732e986176fcfa304c65239e0e50.zip |
Rename files to fit into the convention
Diffstat (limited to 'src/vpn/gnunet-vpn-packet.h')
-rw-r--r-- | src/vpn/gnunet-vpn-packet.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/vpn/gnunet-vpn-packet.h b/src/vpn/gnunet-vpn-packet.h new file mode 100644 index 000000000..c19e7a101 --- /dev/null +++ b/src/vpn/gnunet-vpn-packet.h | |||
@@ -0,0 +1,114 @@ | |||
1 | #ifndef _GNTUN_PACKET_H_ | ||
2 | #define _GNTUN_PACKET_H_ | ||
3 | |||
4 | struct pkt_tun { | ||
5 | unsigned flags:16; | ||
6 | unsigned type:16; | ||
7 | }; | ||
8 | |||
9 | struct ip6_hdr { | ||
10 | unsigned version:4; | ||
11 | unsigned tclass:8; | ||
12 | unsigned flowlbl:20; | ||
13 | unsigned paylgth:16; | ||
14 | unsigned nxthdr:8; | ||
15 | unsigned hoplmt:8; | ||
16 | unsigned char sadr[16]; | ||
17 | unsigned char dadr[16]; | ||
18 | }; | ||
19 | |||
20 | struct tcp_pkt { | ||
21 | unsigned spt:16; | ||
22 | unsigned dpt:16; | ||
23 | unsigned seq:32; | ||
24 | unsigned ack:32; | ||
25 | unsigned off:4; | ||
26 | unsigned rsv:4; | ||
27 | unsigned flg:8; | ||
28 | unsigned wsz:16; | ||
29 | unsigned crc:16; | ||
30 | unsigned urg:16; | ||
31 | unsigned char data[1]; | ||
32 | }; | ||
33 | |||
34 | struct udp_pkt { | ||
35 | unsigned spt:16; | ||
36 | unsigned dpt:16; | ||
37 | unsigned len:16; | ||
38 | unsigned crc:16; | ||
39 | }; | ||
40 | |||
41 | struct dns_pkt { | ||
42 | unsigned short id; | ||
43 | |||
44 | unsigned rd:1; // recursion desired (client -> server) | ||
45 | unsigned tc:1; // message is truncated | ||
46 | unsigned aa:1; // authoritative answer | ||
47 | unsigned op:4; // query:0, inverse q.:1, status: 2 | ||
48 | unsigned qr:1; // query:0, response:1 | ||
49 | |||
50 | unsigned rcode:4; // 0 No error | ||
51 | // 1 Format error | ||
52 | // 2 Server failure | ||
53 | // 3 Name Error | ||
54 | // 4 Not Implemented | ||
55 | // 5 Refused | ||
56 | unsigned z:3; // reserved | ||
57 | unsigned ra:1; // recursion available (server -> client) | ||
58 | |||
59 | unsigned short qdcount; // number of questions | ||
60 | unsigned short ancount; // number of answers | ||
61 | unsigned short nscount; // number of authority-records | ||
62 | unsigned short arcount; // number of additional records | ||
63 | unsigned char data[1]; | ||
64 | }; | ||
65 | |||
66 | struct dns_query { | ||
67 | unsigned char* name; | ||
68 | unsigned short qtype; | ||
69 | unsigned short qclass; | ||
70 | }; | ||
71 | |||
72 | struct dns_record { | ||
73 | unsigned char* name; | ||
74 | unsigned short type; | ||
75 | unsigned short class; | ||
76 | unsigned int ttl; | ||
77 | unsigned short data_len; | ||
78 | unsigned char* data; | ||
79 | }; | ||
80 | |||
81 | struct ip6_pkt { | ||
82 | struct pkt_tun tun; | ||
83 | struct ip6_hdr hdr; | ||
84 | unsigned char data[1]; | ||
85 | }; | ||
86 | |||
87 | struct ip6_tcp { | ||
88 | struct pkt_tun tun; | ||
89 | struct ip6_hdr hdr; | ||
90 | struct tcp_pkt data; | ||
91 | }; | ||
92 | |||
93 | struct ip6_udp { | ||
94 | struct pkt_tun tun; | ||
95 | struct ip6_hdr hdr; | ||
96 | struct udp_pkt data; | ||
97 | }; | ||
98 | |||
99 | void send_pkt(int fd, struct ip6_pkt* pkt); | ||
100 | int recv_ipv6pkt(int fd, struct pkt_tun** pkt); | ||
101 | int recv_pkt(int fd, struct pkt_tun** pkt); | ||
102 | struct ip6_pkt* parse_ip6(struct pkt_tun* pkt); | ||
103 | |||
104 | struct ip6_udp_dns { | ||
105 | struct ip6_udp hdr; | ||
106 | struct dns_pkt data; | ||
107 | }; | ||
108 | |||
109 | struct ip6_tcp* parse_ip6_tcp(struct ip6_pkt*); | ||
110 | struct ip6_udp* parse_ip6_udp(struct ip6_pkt*); | ||
111 | |||
112 | short payload(struct ip6_hdr* pkt); | ||
113 | |||
114 | #endif | ||