NetSim Source Code Help
Loading...
Searching...
No Matches
PIM_Msg.h
Go to the documentation of this file.
1/************************************************************************************
2* Copyright (C) 2020 *
3* TETCOS, Bangalore. India *
4* *
5* Tetcos owns the intellectual property rights in the Product and its content. *
6* The copying, redistribution, reselling or publication of any or all of the *
7* Product or its content without express prior written consent of Tetcos is *
8* prohibited. Ownership and / or any other right relating to the software and all *
9* intellectual property rights therein shall remain at all times with Tetcos. *
10* *
11* Author: Shashi Kant Suman *
12* *
13* ---------------------------------------------------------------------------------*/
14#pragma once
15#ifndef _NETSIM_PIM_MSG_H_
16#define _NETSIM_PIM_MSG_H_
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21 /*
22 Type
23 Types for specific PIM messages. PIM Types are:
24
25 Message Type Destination
26 ---------------------------------------------------------------------
27 0 = Hello Multicast to ALL-PIM-ROUTERS
28 1 = Register Unicast to RP
29 2 = Register-Stop Unicast to source of Register
30 packet
31 3 = Join/Prune Multicast to ALL-PIM-ROUTERS
32 4 = Bootstrap Multicast to ALL-PIM-ROUTERS
33 5 = Assert Multicast to ALL-PIM-ROUTERS
34 6 = Graft (used in PIM-DM only) Unicast to RPF'(S)
35 7 = Graft-Ack (used in PIM-DM only) Unicast to source of Graft
36 packet
37 8 = Candidate-RP-Advertisement Unicast to Domain's BSR
38 */
39 typedef enum enum_pim_msg_type
40 {
51
52 /*
53 The PIM header common to all PIM messages is:
54
55 0 1 2 3
56 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
57 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
58 |PIM Ver| Type | Reserved | Checksum |
59 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
60 */
61 typedef struct stru_pim_hdr
62 {
68#define PIM_VER 2
69#define PIM_HDR_LEN 4 //Bytes
70
71 /*
72 Encoded Unicast Address
73
74 An encoded unicast address takes the following format:
75
76 0 1 2 3
77 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
78 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
79 | Addr Family | Encoding Type | Unicast Address
80 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...
81 */
83 {
88#define ENCODED_UNICAST_ADDR_LEN 6 //Byes for IPV4
89
90 /*
91 Encoded Group Address
92
93 Encoded group addresses take the following format:
94
95 0 1 2 3
96 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
97 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
98 | Addr Family | Encoding Type |B| Reserved |Z| Mask Len |
99 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
100 | Group multicast Address
101 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...
102 */
104 {
107 UINT B : 1;
109 UINT Z : 1;
113#define ENCODED_GROUP_ADDR_LEN 8 //Bytes
114
115 /*
116 Encoded Source Address
117
118 An encoded source address takes the following format:
119
120 0 1 2 3
121 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
122 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
123 | Addr Family | Encoding Type | Rsrvd |S|W|R| Mask Len |
124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
125 | Source Address
126 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
127 */
129 {
133 UINT S : 1;
134 UINT W : 1;
135 UINT R : 1;
139#define ENCODED_SOURCE_ADDR_LEN 8 //Bytes
140
142 {
147#define PIM_HELLO_OPTION_LEN 4 //Bytes
148
149 /*
150 OptionType 1: Holdtime
151
152 0 1 2 3
153 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
154 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
155 | Type = 1 | Length = 2 |
156 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
157 | Holdtime |
158 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
159 */
160 typedef struct stru_option_holdtime
161 {
164#define PIM_OPTION_HOLDTIME_LEN 2 //Bytes
165#define PIM_OPTION_HOLDTIME_TYPE 1
166
167 /*
168 OptionType 2: LAN Prune Delay
169
170 0 1 2 3
171 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
172 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
173 | Type = 2 | Length = 4 |
174 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
175 |T| Propagation_Delay | Override_Interval |
176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
177 */
179 {
180 bool T;
184#define PIM_OPTION_LANPRUNEDELAY_LEN 4 // Bytes
185#define PIM_OPTION_LANPRUNEDELAY_TYPE 2
186
187 /*
188 OptionType 19: DR Priority
189
190 0 1 2 3
191 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
192 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
193 | Type = 19 | Length = 4 |
194 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
195 | DR Priority |
196 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
197 */
199 {
202#define PIM_OPTION_DRPRIORITY_LEN 4 //Bytes
203#define PIM_OPTION_DRPRIORITY_TYPE 19
204
205 /*
206 OptionType 20: Generation ID
207
208 0 1 2 3
209 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
210 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
211 | Type = 20 | Length = 4 |
212 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
213 | Generation ID |
214 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
215 */
216 typedef struct stru_option_gen_id
217 {
220#define PIM_OPTION_GENERATIONID_LEN 4 //Bytes
221#define PIM_OPTION_GENERATIONID_TYPE 20
222
223 /*
224 OptionType 24: Address List
225
226 0 1 2 3
227 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
229 | Type = 24 | Length = <Variable> |
230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
231 | Secondary Address 1 (Encoded-Unicast format) |
232 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
233 ...
234 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
235 | Secondary Address N (Encoded-Unicast format) |
236 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
237 */
238 typedef struct stru_option_addrlist
239 {
243#define PIM_OPTION_ADDRLIST_LEN 0 //Bytes .... Not fixed
244#define PIM_OPTION_ADDRLIST_TYPE 24
245
246 /*
247 4.9.2. Hello Message Format
248
249 A Hello message is sent periodically by routers on all interfaces.
250
251 0 1 2 3
252 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
253 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
254 |PIM Ver| Type | Reserved | Checksum |
255 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
256 | OptionType | OptionLength |
257 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
258 | OptionValue |
259 | ... |
260 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
261 | . |
262 | . |
263 | . |
264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
265 | OptionType | OptionLength |
266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
267 | OptionValue |
268 | ... |
269 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
270 */
271
272 typedef struct stru_pim_Hello
273 {
278#define PIM_HELLO_LEN 0 //Bytes
279
280 /*
281 4.9.3. Register Message Format
282
283 A Register message is sent by the DR to the RP when a multicast
284 packet needs to be transmitted on the RP-tree. The IP source address
285 is set to the address of the DR, the destination address to the RP's
286 address. The IP TTL of the PIM packet is the system's normal
287 unicast TTL.
288
289 0 1 2 3
290 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
291 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
292 |PIM Ver| Type | Reserved | Checksum |
293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
294 |B|N| Reserved2 |
295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
296 | |
297 . Multicast data packet .
298 | |
299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
300 */
302 {
304 UINT B : 1;
305 UINT N : 1;
309
310 /*
311 4.9.4. Register-Stop Message Format
312
313 A Register-Stop is unicast from the RP to the sender of the Register
314 message. The IP source address is the address to which the register
315 was addressed. The IP destination address is the source address of
316 the register message.
317
318 0 1 2 3
319 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
321 |PIM Ver| Type | Reserved | Checksum |
322 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
323 | Group Address (Encoded-Group format) |
324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
325 | Source Address (Encoded-Unicast format) |
326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
327 */
329 {
334
335 /*
336 4.9.5. Join/Prune Message Format
337
338 A Join/Prune message is sent by routers towards upstream sources and
339 RPs. Joins are sent to build shared trees (RP trees) or source trees
340 (SPT). Prunes are sent to prune source trees when members leave
341 groups as well as sources that do not use the shared tree.
342 0 1 2 3
343 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
344 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
345 |PIM Ver| Type | Reserved | Checksum |
346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
347 | Upstream Neighbor Address (Encoded-Unicast format) |
348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
349 | Reserved | Num groups | Holdtime |
350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
351 | Multicast Group Address 1 (Encoded-Group format) |
352 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
353 | Number of Joined Sources | Number of Pruned Sources |
354 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
355 | Joined Source Address 1 (Encoded-Source format) |
356 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
357 | . |
358 | . |
359 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
360 | Joined Source Address n (Encoded-Source format) |
361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
362 | Pruned Source Address 1 (Encoded-Source format) |
363 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
364 | . |
365 | . |
366 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
367 | Pruned Source Address n (Encoded-Source format) |
368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
369 | . |
370 | . |
371 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
372 | Multicast Group Address m (Encoded-Group format) |
373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
374 | Number of Joined Sources | Number of Pruned Sources |
375 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
376 | Joined Source Address 1 (Encoded-Source format) |
377 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
378 | . |
379 | . |
380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
381 | Joined Source Address n (Encoded-Source format) |
382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
383 | Pruned Source Address 1 (Encoded-Source format) |
384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
385 | . |
386 | . |
387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
388 | Pruned Source Address n (Encoded-Source format) |
389 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
390 */
391 typedef struct stru_msg_groups
392 {
399
401 {
409#define PIM_JP_MSG_LEN (ENCODED_UNICAST_ADDR_LEN+4) //Bytes
410
411 //Function pointer
412 void* get_PIM_MSG(NetSim_PACKET* packet);
413 void set_PIM_MSG(NetSim_PACKET* packet, void* msg);
414 void set_pim_hdr(ptrPIM_HDR hdr, PIMMSG type);
416 void* opt,
417 double time,
418 NETSIM_ID source,
419 NETSIM_IPAddress sourceAddrss,
420 UINT destCount,
421 NETSIM_ID* destList,
423 UINT ttl);
424 void send_pim_msg(NETSIM_ID d, double time, NetSim_PACKET* packet);
428
429#ifdef __cplusplus
430}
431#endif
432#endif
unsigned int NETSIM_ID
Definition: Animation.h:45
GROUP_MOBILITY * group
Definition: GroupMobility.c:30
#define UINT
Definition: Linux.h:38
#define UINT16
Definition: Linux.h:33
#define UINT8
Definition: Linux.h:31
struct stru_pim_hdr * ptrPIM_HDR
struct stru_option_lan_prune_delay * ptrOPTION_LANPRUNEDELAY
struct stru_pim_Hello * ptrPIM_HELLO
void set_PIM_MSG(NetSim_PACKET *packet, void *msg)
Definition: PIM_Msg.c:26
struct stru_pim_hello_option PIM_HELLO_OPTION
struct stru_pim_encoded_group_addr ENCODED_GROUP_ADDR
void set_pim_hdr(ptrPIM_HDR hdr, PIMMSG type)
Definition: PIM_Msg.c:145
struct stru_option_addrlist OPTION_ADDRLIST
struct stru_option_dr_priority OPTION_DRPRIORITY
NetSim_PACKET * create_pim_packet(PIMMSG type, void *opt, double time, NETSIM_ID source, NETSIM_IPAddress sourceAddrss, UINT destCount, NETSIM_ID *destList, NETSIM_IPAddress group, UINT ttl)
Definition: PIM_Msg.c:91
struct stru_pim_join_prune_msg * ptrPIM_JOINPRUNE_MSG
struct stru_option_gen_id * ptrOPTION_GENERATIONID
struct stru_pim_register_stop_msg PIM_REGISTERSTOPMSG
struct stru_pim_encoded_unicast_addr * ptrENCODED_UNICAST_ADDR
ptrENCODED_GROUP_ADDR encode_group_addr(NETSIM_IPAddress ip)
Definition: PIM_Msg.c:182
struct stru_option_holdtime OPTION_HOLDTIME
enum_pim_msg_type
Definition: PIM_Msg.h:40
@ PIMMSG_JoinPrune
Definition: PIM_Msg.h:44
@ PIMMSG_Register
Definition: PIM_Msg.h:42
@ PIMMSG_CandidateRPAdvertisement
Definition: PIM_Msg.h:49
@ PIMMSG_Assert
Definition: PIM_Msg.h:46
@ PIMMSG_GraftAck
Definition: PIM_Msg.h:48
@ PIMMSG_Graft
Definition: PIM_Msg.h:47
@ PIMMSG_Bootstrap
Definition: PIM_Msg.h:45
@ PIMMSG_RegisterStop
Definition: PIM_Msg.h:43
@ PIMMSG_Hello
Definition: PIM_Msg.h:41
struct stru_pim_register_stop_msg * ptrPIM_REGISTERSTOPMSG
struct stru_pim_Hello PIM_HELLO
ptrENCODED_SOURCE_ADDR encode_source_addr(NETSIM_IPAddress ip, NETSIM_IPAddress subnet)
Definition: PIM_Msg.c:172
void * get_PIM_MSG(NetSim_PACKET *packet)
Definition: PIM_Msg.c:21
void send_pim_msg(NETSIM_ID d, double time, NetSim_PACKET *packet)
Definition: PIM_Msg.c:125
struct stru_pim_encoded_source_addr ENCODED_SOURCE_ADDR
struct stru_pim_join_prune_msg PIM_JOINPRUNE_MSG
struct stru_option_gen_id OPTION_GENERATIONID
struct stru_pim_register_msg * ptrPIM_REGISTERMSG
struct stru_msg_groups PIM_JOINMSG_GROUP
struct stru_pim_encoded_unicast_addr ENCODED_UNICAST_ADDR
struct stru_pim_register_msg PIM_REGISTERMSG
struct stru_option_dr_priority * ptrOPTION_DRPRIORITY
struct stru_pim_encoded_group_addr * ptrENCODED_GROUP_ADDR
struct stru_pim_hdr PIM_HDR
struct stru_option_holdtime * ptrOPTION_HOLDTIME
enum enum_pim_msg_type PIMMSG
struct stru_pim_encoded_source_addr * ptrENCODED_SOURCE_ADDR
struct stru_msg_groups * ptrPIM_JOINMSG_GROUP
struct stru_pim_hello_option * ptrPIM_HELLO_OPTION
struct stru_option_addrlist * ptrOPTION_ADDRLIST
struct stru_option_lan_prune_delay OPTION_LANPRUNEDELAY
ptrENCODED_UNICAST_ADDR encode_unicast_addr(NETSIM_IPAddress ip)
Definition: PIM_Msg.c:151
ptrENCODED_SOURCE_ADDR * joinedSourceAddr
Definition: PIM_Msg.h:396
UINT numPrunedSource
Definition: PIM_Msg.h:395
ptrENCODED_GROUP_ADDR multicastAddr
Definition: PIM_Msg.h:393
UINT numJoinedSource
Definition: PIM_Msg.h:394
ptrENCODED_SOURCE_ADDR * pruneSourceAddr
Definition: PIM_Msg.h:397
ptrENCODED_UNICAST_ADDR * SeconadayAddr
Definition: PIM_Msg.h:241
ptrPIM_HELLO_OPTION * option
Definition: PIM_Msg.h:276
PIM_HDR hdr
Definition: PIM_Msg.h:274
UINT optCount
Definition: PIM_Msg.h:275
NETSIM_IPAddress GroupMulticastAddr
Definition: PIM_Msg.h:111
NETSIM_IPAddress SourceAddr
Definition: PIM_Msg.h:137
NETSIM_IPAddress unicastAddr
Definition: PIM_Msg.h:86
UINT8 Reserved
Definition: PIM_Msg.h:65
UINT16 Checksum
Definition: PIM_Msg.h:66
UINT PIM_Ver
Definition: PIM_Msg.h:63
PIMMSG Type
Definition: PIM_Msg.h:64
ptrENCODED_UNICAST_ADDR unicastAddr
Definition: PIM_Msg.h:403
ptrPIM_JOINMSG_GROUP * groups
Definition: PIM_Msg.h:407
void * multicastDataPacket
Definition: PIM_Msg.h:307
ptrENCODED_GROUP_ADDR groupAddr
Definition: PIM_Msg.h:331
ptrENCODED_SOURCE_ADDR sourceAddr
Definition: PIM_Msg.h:332