BSD-style license.
[olsrd.git] / gui / win32 / Main / Ipc.h
1 /*\r
2  * The olsr.org Optimized Link-State Routing daemon (olsrd)\r
3  * Copyright (c) 2004, Thomas Lopatic (thomas@lopatic.de)\r
4  * All rights reserved.\r
5  *\r
6  * Redistribution and use in source and binary forms, with or without \r
7  * modification, are permitted provided that the following conditions \r
8  * are met:\r
9  *\r
10  * * Redistributions of source code must retain the above copyright \r
11  *   notice, this list of conditions and the following disclaimer.\r
12  * * Redistributions in binary form must reproduce the above copyright \r
13  *   notice, this list of conditions and the following disclaimer in \r
14  *   the documentation and/or other materials provided with the \r
15  *   distribution.\r
16  * * Neither the name of olsr.org, olsrd nor the names of its \r
17  *   contributors may be used to endorse or promote products derived \r
18  *   from this software without specific prior written permission.\r
19  *\r
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS \r
23  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE \r
24  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, \r
25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \r
26  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; \r
27  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER \r
28  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \r
29  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN \r
30  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \r
31  * POSSIBILITY OF SUCH DAMAGE.\r
32  *\r
33  * Visit http://www.olsr.org for more information.\r
34  *\r
35  * If you find this software useful feel free to make a donation\r
36  * to the project. For more information see the website or contact\r
37  * the copyright holders.\r
38  *\r
39  * $Id: Ipc.h,v 1.4 2004/11/21 01:21:10 tlopatic Exp $\r
40  */\r
41 \r
42 #if !defined TL_IPC_H\r
43 #define TL_IPC_H\r
44 \r
45 #define MSG_TYPE_OLSR_HELLO 1\r
46 #define MSG_TYPE_OLSR_TC 2\r
47 #define MSG_TYPE_OLSR_MID 3\r
48 #define MSG_TYPE_OLSR_HNA 4\r
49 #define MSG_TYPE_OLSR_LQ_HELLO 5\r
50 #define MSG_TYPE_OLSR_LQ_TC 6\r
51 \r
52 #define MSG_TYPE_IPC_ROUTE 11\r
53 #define MSG_TYPE_IPC_CONFIG 12\r
54 \r
55 #pragma pack(push, BeforeIpcMessages, 1)\r
56 \r
57 struct OlsrHeader\r
58 {\r
59         unsigned char Type;\r
60         unsigned char VTime;\r
61         unsigned short Size;\r
62         unsigned int Orig;\r
63         unsigned char Ttl;\r
64         unsigned char Hops;\r
65         unsigned short SeqNo;\r
66 };\r
67 \r
68 struct OlsrHello\r
69 {\r
70         struct OlsrHeader Header;\r
71 \r
72         unsigned short Reserved;\r
73         unsigned char HTime;\r
74         unsigned char Will;\r
75 };\r
76 \r
77 struct OlsrHelloLink\r
78 {\r
79         unsigned char LinkCode;\r
80         unsigned char Reserved;\r
81         unsigned short Size;\r
82 };\r
83 \r
84 struct OlsrTc\r
85 {\r
86         struct OlsrHeader Header;\r
87 \r
88         unsigned short Ansn;\r
89         unsigned short Reserved;\r
90 };\r
91 \r
92 union IpcIpAddr\r
93 {\r
94         unsigned int v4;\r
95         unsigned char v6[16];\r
96 };\r
97 \r
98 struct IpcHeader\r
99 {\r
100         unsigned char Type;\r
101         unsigned char Reserved;\r
102         unsigned short Size;\r
103 };\r
104 \r
105 struct IpcRoute\r
106 {\r
107         struct IpcHeader Header;\r
108         \r
109         unsigned char Metric;\r
110         unsigned char Add;\r
111         unsigned char Reserved[2];\r
112         union IpcIpAddr Dest;\r
113         union IpcIpAddr Gate;\r
114         char Int[4];\r
115 };\r
116 \r
117 struct IpcConfig\r
118 {\r
119         struct IpcHeader Header;\r
120 \r
121         unsigned char NumMid;\r
122         unsigned char NumHna;\r
123         unsigned char Reserved1[2];\r
124         unsigned short HelloInt;\r
125         unsigned short WiredHelloInt;\r
126         unsigned short TcInt;\r
127         unsigned short HelloHold;\r
128         unsigned short TcHold;\r
129         unsigned char Ipv6;\r
130         unsigned char Reserved2;\r
131         IpcIpAddr MainAddr;\r
132 };\r
133 \r
134 #pragma pack (pop, BeforeIpcMessages)\r
135 \r
136 #endif\r