Initial import
[olsrd.git] / gui / win32 / Main / Ipc.h
1 /*\r
2  * Windows GUI for olsr.org\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 \r
31 #define MSG_TYPE_IPC_ROUTE 11\r
32 #define MSG_TYPE_IPC_CONFIG 12\r
33 \r
34 #pragma pack(push, BeforeIpcMessages, 1)\r
35 \r
36 struct OlsrHeader\r
37 {\r
38         unsigned char Type;\r
39         unsigned char VTime;\r
40         unsigned short Size;\r
41         unsigned int Orig;\r
42         unsigned char Ttl;\r
43         unsigned char Hops;\r
44         unsigned short SeqNo;\r
45 };\r
46 \r
47 struct OlsrHello\r
48 {\r
49         struct OlsrHeader Header;\r
50 \r
51         unsigned short Reserved;\r
52         unsigned char HTime;\r
53         unsigned char Will;\r
54 };\r
55 \r
56 struct OlsrHelloLink\r
57 {\r
58         unsigned char LinkCode;\r
59         unsigned char Reserved;\r
60         unsigned short Size;\r
61 };\r
62 \r
63 struct OlsrTc\r
64 {\r
65         struct OlsrHeader Header;\r
66 \r
67         unsigned short Ansn;\r
68         unsigned short Reserved;\r
69 };\r
70 \r
71 union IpcIpAddr\r
72 {\r
73         unsigned int v4;\r
74         unsigned char v6[16];\r
75 };\r
76 \r
77 struct IpcHeader\r
78 {\r
79         unsigned char Type;\r
80         unsigned char Reserved;\r
81         unsigned short Size;\r
82 };\r
83 \r
84 struct IpcRoute\r
85 {\r
86         struct IpcHeader Header;\r
87         \r
88         unsigned char Metric;\r
89         unsigned char Add;\r
90         unsigned char Reserved[2];\r
91         union IpcIpAddr Dest;\r
92         union IpcIpAddr Gate;\r
93         char Int[4];\r
94 };\r
95 \r
96 struct IpcConfig\r
97 {\r
98         struct IpcHeader Header;\r
99 \r
100         unsigned char NumMid;\r
101         unsigned char NumHna;\r
102         unsigned char Reserved1[2];\r
103         unsigned short HelloInt;\r
104         unsigned short WiredHelloInt;\r
105         unsigned short TcInt;\r
106         unsigned short HelloHold;\r
107         unsigned short TcHold;\r
108         unsigned char Ipv6;\r
109         unsigned char Reserved2;\r
110         IpcIpAddr MainAddr;\r
111 };\r
112 \r
113 #pragma pack (pop, BeforeIpcMessages)\r
114 \r
115 #endif\r