forked from AlexTalker/pimd-dense
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdvmrp_proto.c
200 lines (181 loc) · 4.49 KB
/
dvmrp_proto.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
/*
* Copyright (c) 1998 by the University of Southern California.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and
* its documentation in source and binary forms for lawful
* purposes and without fee is hereby granted, provided
* that the above copyright notice appear in all copies and that both
* the copyright notice and this permission notice appear in supporting
* documentation, and that any documentation, advertising materials,
* and other materials related to such distribution and use acknowledge
* that the software was developed by the University of Southern
* California and/or Information Sciences Institute.
* The name of the University of Southern California may not
* be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THE UNIVERSITY OF SOUTHERN CALIFORNIA DOES NOT MAKE ANY REPRESENTATIONS
* ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. THIS SOFTWARE IS
* PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND
* NON-INFRINGEMENT.
*
* IN NO EVENT SHALL USC, OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY
* SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, WHETHER IN CONTRACT,
* TORT, OR OTHER FORM OF ACTION, ARISING OUT OF OR IN CONNECTION WITH,
* THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Other copyrights might apply to parts of this software and are so
* noted when applicable.
*/
/*
* Questions concerning this software should be directed to
* Pavlin Ivanov Radoslavov ([email protected])
*
* $Id: dvmrp_proto.c,v 1.1.1.1 1998/05/11 17:39:34 kurtw Exp $
*/
#include "defs.h"
/* TODO */
/*
* Process an incoming neighbor probe message.
*/
void
dvmrp_accept_probe(src, dst, p, datalen, level)
u_int32 src;
u_int32 dst;
char *p;
int datalen;
u_int32 level;
{
return;
}
/* TODO */
/*
* Process an incoming route report message.
*/
void
dvmrp_accept_report(src, dst, p, datalen, level)
u_int32 src;
u_int32 dst;
register char *p;
register int datalen;
u_int32 level;
{
return;
}
/* TODO */
void
dvmrp_accept_info_request(src, dst, p, datalen)
u_int32 src;
u_int32 dst;
u_char *p;
int datalen;
{
return;
}
/*
* Process an incoming info reply message.
*/
void
dvmrp_accept_info_reply(src, dst, p, datalen)
u_int32 src;
u_int32 dst;
u_char *p;
int datalen;
{
IF_DEBUG(DEBUG_PKT)
logit(LOG_DEBUG, 0, "ignoring spurious DVMRP info reply from %s to %s",
inet_fmt(src, s1), inet_fmt(dst, s2));
}
/*
* Process an incoming neighbor-list message.
*/
void
dvmrp_accept_neighbors(src, dst, p, datalen, level)
u_int32 src;
u_int32 dst;
u_char *p;
int datalen;
u_int32 level;
{
logit(LOG_INFO, 0, "ignoring spurious DVMRP neighbor list from %s to %s",
inet_fmt(src, s1), inet_fmt(dst, s2));
}
/*
* Process an incoming neighbor-list message.
*/
void
dvmrp_accept_neighbors2(src, dst, p, datalen, level)
u_int32 src;
u_int32 dst;
u_char *p;
int datalen;
u_int32 level;
{
IF_DEBUG(DEBUG_PKT)
logit(LOG_DEBUG, 0,
"ignoring spurious DVMRP neighbor list2 from %s to %s",
inet_fmt(src, s1), inet_fmt(dst, s2));
}
/* TODO */
/*
* Takes the prune message received and then strips it to
* determine the (src, grp) pair to be pruned.
*
* Adds the router to the (src, grp) entry then.
*
* Determines if further packets have to be sent down that vif
*
* Determines if a corresponding prune message has to be generated
*/
void
dvmrp_accept_prune(src, dst, p, datalen)
u_int32 src;
u_int32 dst;
char *p;
int datalen;
{
return;
}
/* TODO */
/* determine the multicast group and src
*
* if it does, then determine if a prune was sent
* upstream.
* if prune sent upstream, send graft upstream and send
* ack downstream.
*
* if no prune sent upstream, change the forwarding bit
* for this interface and send ack downstream.
*
* if no entry exists for this group send ack downstream.
*/
void
dvmrp_accept_graft(src, dst, p, datalen)
u_int32 src;
u_int32 dst;
char *p;
int datalen;
{
return;
}
/* TODO */
/*
* find out which group is involved first of all
* then determine if a graft was sent.
* if no graft sent, ignore the message
* if graft was sent and the ack is from the right
* source, remove the graft timer so that we don't
* have send a graft again
*/
void
dvmrp_accept_g_ack(src, dst, p, datalen)
u_int32 src;
u_int32 dst;
char *p;
int datalen;
{
return;
}