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