f3f60de5a7379c7fc5505b8dbf107c0f594b93c2
[olsrd.git] / gui / win32 / Main / Ipc.h
1 /*\r
2  * $Id: Ipc.h,v 1.3 2004/11/20 23:17:47 tlopatic Exp $\r
3  * Copyright (C) 2004 Thomas Lopatic (thomas@lopatic.de)\r
4  *\r
5  * This file is part of olsr.org.\r
6  *\r
7  * olsr.org is free software; you can redistribute it and/or modify\r
8  * it under the terms of the GNU General Public License as published by\r
9  * the Free Software Foundation; either version 2 of the License, or\r
10  * (at your option) any later version.\r
11  *\r
12  * olsr.org is distributed in the hope that it will be useful,\r
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15  * GNU General Public License for more details.\r
16  *\r
17  * You should have received a copy of the GNU General Public License\r
18  * along with olsr.org; if not, write to the Free Software\r
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
20  *\r
21  */\r
22 \r
23 #if !defined TL_IPC_H\r
24 #define TL_IPC_H\r
25 \r
26 #define MSG_TYPE_OLSR_HELLO 1\r
27 #define MSG_TYPE_OLSR_TC 2\r
28 #define MSG_TYPE_OLSR_MID 3\r
29 #define MSG_TYPE_OLSR_HNA 4\r
30 #define MSG_TYPE_OLSR_LQ_HELLO 5\r
31 #define MSG_TYPE_OLSR_LQ_TC 6\r
32 \r
33 #define MSG_TYPE_IPC_ROUTE 11\r
34 #define MSG_TYPE_IPC_CONFIG 12\r
35 \r
36 #pragma pack(push, BeforeIpcMessages, 1)\r
37 \r
38 struct OlsrHeader\r
39 {\r
40         unsigned char Type;\r
41         unsigned char VTime;\r
42         unsigned short Size;\r
43         unsigned int Orig;\r
44         unsigned char Ttl;\r
45         unsigned char Hops;\r
46         unsigned short SeqNo;\r
47 };\r
48 \r
49 struct OlsrHello\r
50 {\r
51         struct OlsrHeader Header;\r
52 \r
53         unsigned short Reserved;\r
54         unsigned char HTime;\r
55         unsigned char Will;\r
56 };\r
57 \r
58 struct OlsrHelloLink\r
59 {\r
60         unsigned char LinkCode;\r
61         unsigned char Reserved;\r
62         unsigned short Size;\r
63 };\r
64 \r
65 struct OlsrTc\r
66 {\r
67         struct OlsrHeader Header;\r
68 \r
69         unsigned short Ansn;\r
70         unsigned short Reserved;\r
71 };\r
72 \r
73 union IpcIpAddr\r
74 {\r
75         unsigned int v4;\r
76         unsigned char v6[16];\r
77 };\r
78 \r
79 struct IpcHeader\r
80 {\r
81         unsigned char Type;\r
82         unsigned char Reserved;\r
83         unsigned short Size;\r
84 };\r
85 \r
86 struct IpcRoute\r
87 {\r
88         struct IpcHeader Header;\r
89         \r
90         unsigned char Metric;\r
91         unsigned char Add;\r
92         unsigned char Reserved[2];\r
93         union IpcIpAddr Dest;\r
94         union IpcIpAddr Gate;\r
95         char Int[4];\r
96 };\r
97 \r
98 struct IpcConfig\r
99 {\r
100         struct IpcHeader Header;\r
101 \r
102         unsigned char NumMid;\r
103         unsigned char NumHna;\r
104         unsigned char Reserved1[2];\r
105         unsigned short HelloInt;\r
106         unsigned short WiredHelloInt;\r
107         unsigned short TcInt;\r
108         unsigned short HelloHold;\r
109         unsigned short TcHold;\r
110         unsigned char Ipv6;\r
111         unsigned char Reserved2;\r
112         IpcIpAddr MainAddr;\r
113 };\r
114 \r
115 #pragma pack (pop, BeforeIpcMessages)\r
116 \r
117 #endif\r