Revision f92e6ab3
nest/iface.c | ||
---|---|---|
150 | 150 |
} |
151 | 151 |
|
152 | 152 |
static void |
153 |
ifa_notify_change_dep(unsigned c, struct ifa *a)
|
|
153 |
ifa_notify_change_(unsigned c, struct ifa *a) |
|
154 | 154 |
{ |
155 | 155 |
struct proto *p; |
156 | 156 |
|
... | ... | |
163 | 163 |
static inline void |
164 | 164 |
ifa_notify_change(unsigned c, struct ifa *a) |
165 | 165 |
{ |
166 |
neigh_ifa_update(a); |
|
167 |
ifa_notify_change_dep(c, a); |
|
166 |
if (c & IF_CHANGE_DOWN) |
|
167 |
neigh_ifa_update(a); |
|
168 |
|
|
169 |
ifa_notify_change_(c, a); |
|
170 |
|
|
171 |
if (c & IF_CHANGE_UP) |
|
172 |
neigh_ifa_update(a); |
|
168 | 173 |
} |
169 | 174 |
|
170 | 175 |
static inline void |
... | ... | |
201 | 206 |
if_dump(i); |
202 | 207 |
#endif |
203 | 208 |
|
204 |
if (c & IF_CHANGE_UP)
|
|
205 |
neigh_if_up(i);
|
|
209 |
if (c & IF_CHANGE_DOWN)
|
|
210 |
neigh_if_down(i);
|
|
206 | 211 |
|
207 | 212 |
if (c & IF_CHANGE_DOWN) |
208 | 213 |
WALK_LIST(a, i->addrs) |
209 | 214 |
{ |
210 | 215 |
a->flags = (i->flags & ~IA_FLAGS) | (a->flags & IA_FLAGS); |
211 |
ifa_notify_change_dep(IF_CHANGE_DOWN, a);
|
|
216 |
ifa_notify_change_(IF_CHANGE_DOWN, a); |
|
212 | 217 |
} |
213 | 218 |
|
214 | 219 |
WALK_LIST(p, active_proto_list) |
... | ... | |
218 | 223 |
WALK_LIST(a, i->addrs) |
219 | 224 |
{ |
220 | 225 |
a->flags = (i->flags & ~IA_FLAGS) | (a->flags & IA_FLAGS); |
221 |
ifa_notify_change_dep(IF_CHANGE_UP, a);
|
|
226 |
ifa_notify_change_(IF_CHANGE_UP, a); |
|
222 | 227 |
} |
223 | 228 |
|
229 |
if (c & IF_CHANGE_UP) |
|
230 |
neigh_if_up(i); |
|
231 |
|
|
224 | 232 |
if ((c & (IF_CHANGE_UP | IF_CHANGE_DOWN | IF_CHANGE_LINK)) == IF_CHANGE_LINK) |
225 | 233 |
neigh_if_link(i); |
226 |
|
|
227 |
if (c & IF_CHANGE_DOWN) |
|
228 |
neigh_if_down(i); |
|
229 | 234 |
} |
230 | 235 |
|
231 | 236 |
static unsigned |
... | ... | |
251 | 256 |
} |
252 | 257 |
|
253 | 258 |
/** |
254 |
* if_delete - remove interface
|
|
255 |
* @old: interface
|
|
259 |
* if_delete - remove interface |
|
260 |
* @old: interface |
|
256 | 261 |
* |
257 | 262 |
* This function is called by the low-level platform dependent code |
258 | 263 |
* whenever it notices an interface disappears. It is just a shorthand |
... | ... | |
676 | 681 |
if ((a->flags & IA_PEER) && |
677 | 682 |
ipa_in_net(a->opposite, p->prefix, p->pxlen)) |
678 | 683 |
return pos; |
679 |
|
|
684 |
|
|
680 | 685 |
continue; |
681 | 686 |
} |
682 | 687 |
|
Also available in: Unified diff