diff options
author | Philipp Tölke <toelke@in.tum.de> | 2010-06-28 12:37:47 +0000 |
---|---|---|
committer | Philipp Tölke <toelke@in.tum.de> | 2010-06-28 12:37:47 +0000 |
commit | 70996f5b1a1aff74d0a650cff571bd45d5ee02c5 (patch) | |
tree | dd070602c57e95ae654df391930513dca260b020 | |
parent | cca5525b019ac335bd39a8727d1fb92807b0e319 (diff) | |
download | gnunet-70996f5b1a1aff74d0a650cff571bd45d5ee02c5.tar.gz gnunet-70996f5b1a1aff74d0a650cff571bd45d5ee02c5.zip |
vpn: Packet-Structure for udp and dns over ipv6
-rw-r--r-- | src/vpn/packet.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/vpn/packet.h b/src/vpn/packet.h index fa3c8f38c..84169b531 100644 --- a/src/vpn/packet.h +++ b/src/vpn/packet.h | |||
@@ -31,6 +31,36 @@ struct tcp_pkt { | |||
31 | unsigned char data[1]; | 31 | unsigned char data[1]; |
32 | }; | 32 | }; |
33 | 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 id:16; | ||
43 | unsigned qr:1; // query:0, response:1 | ||
44 | unsigned op:4; // query:0, inverse q.:1, status: 2 | ||
45 | unsigned aa:1; // authoritative answer | ||
46 | unsigned tc:1; // message is truncated | ||
47 | unsigned rd:1; // recursion desired (client -> server) | ||
48 | unsigned ra:1; // recursion available (server -> client) | ||
49 | unsigned z:2; // reserved | ||
50 | unsigned a:1; // answer is signed by server | ||
51 | unsigned rcode:4; // 0 No error | ||
52 | // 1 Format error | ||
53 | // 2 Server failure | ||
54 | // 3 Name Error | ||
55 | // 4 Not Implemented | ||
56 | // 5 Refused | ||
57 | unsigned qdcount:16; // number of questions | ||
58 | unsigned ancount:16; // number of answers | ||
59 | unsigned nscount:16; // number of authority-records | ||
60 | unsigned arcount:16; // number of additional records | ||
61 | unsigned char data[1]; | ||
62 | } | ||
63 | |||
34 | struct ip6_pkt { | 64 | struct ip6_pkt { |
35 | struct pkt_tun tun; | 65 | struct pkt_tun tun; |
36 | struct ip6_hdr hdr; | 66 | struct ip6_hdr hdr; |
@@ -43,6 +73,12 @@ struct ip6_tcp { | |||
43 | struct tcp_pkt data; | 73 | struct tcp_pkt data; |
44 | }; | 74 | }; |
45 | 75 | ||
76 | struct ip6_udp { | ||
77 | struct pkt_tun tun; | ||
78 | struct ip6_hdr hdr; | ||
79 | struct udp_pkt data; | ||
80 | }; | ||
81 | |||
46 | extern void send_pkt(int fd, struct ip6_pkt* pkt); | 82 | extern void send_pkt(int fd, struct ip6_pkt* pkt); |
47 | extern int recv_ipv6pkt(int fd, struct pkt_tun** pkt); | 83 | extern int recv_ipv6pkt(int fd, struct pkt_tun** pkt); |
48 | extern int recv_pkt(int fd, struct pkt_tun** pkt); | 84 | extern int recv_pkt(int fd, struct pkt_tun** pkt); |