aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/ndisc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/ndisc.h')
-rw-r--r--include/net/ndisc.h61
1 files changed, 26 insertions, 35 deletions
diff --git a/include/net/ndisc.h b/include/net/ndisc.h
index ea0cc26ab70e..6bbda34d5e59 100644
--- a/include/net/ndisc.h
+++ b/include/net/ndisc.h
@@ -110,8 +110,8 @@ struct ndisc_options {
110 110
111#define NDISC_OPT_SPACE(len) (((len)+2+7)&~7) 111#define NDISC_OPT_SPACE(len) (((len)+2+7)&~7)
112 112
113extern struct ndisc_options *ndisc_parse_options(u8 *opt, int opt_len, 113struct ndisc_options *ndisc_parse_options(u8 *opt, int opt_len,
114 struct ndisc_options *ndopts); 114 struct ndisc_options *ndopts);
115 115
116/* 116/*
117 * Return the padding between the option length and the start of the 117 * Return the padding between the option length and the start of the
@@ -189,60 +189,51 @@ static inline struct neighbour *__ipv6_neigh_lookup(struct net_device *dev, cons
189 return n; 189 return n;
190} 190}
191 191
192extern int ndisc_init(void); 192int ndisc_init(void);
193extern int ndisc_late_init(void); 193int ndisc_late_init(void);
194 194
195extern void ndisc_late_cleanup(void); 195void ndisc_late_cleanup(void);
196extern void ndisc_cleanup(void); 196void ndisc_cleanup(void);
197 197
198extern int ndisc_rcv(struct sk_buff *skb); 198int ndisc_rcv(struct sk_buff *skb);
199 199
200extern void ndisc_send_ns(struct net_device *dev, 200void ndisc_send_ns(struct net_device *dev, struct neighbour *neigh,
201 struct neighbour *neigh, 201 const struct in6_addr *solicit,
202 const struct in6_addr *solicit, 202 const struct in6_addr *daddr, const struct in6_addr *saddr);
203 const struct in6_addr *daddr,
204 const struct in6_addr *saddr);
205 203
206extern void ndisc_send_rs(struct net_device *dev, 204void ndisc_send_rs(struct net_device *dev,
207 const struct in6_addr *saddr, 205 const struct in6_addr *saddr, const struct in6_addr *daddr);
208 const struct in6_addr *daddr); 206void ndisc_send_na(struct net_device *dev, struct neighbour *neigh,
209extern void ndisc_send_na(struct net_device *dev, struct neighbour *neigh, 207 const struct in6_addr *daddr,
210 const struct in6_addr *daddr, 208 const struct in6_addr *solicited_addr,
211 const struct in6_addr *solicited_addr, 209 bool router, bool solicited, bool override, bool inc_opt);
212 bool router, bool solicited, bool override,
213 bool inc_opt);
214 210
215extern void ndisc_send_redirect(struct sk_buff *skb, 211void ndisc_send_redirect(struct sk_buff *skb, const struct in6_addr *target);
216 const struct in6_addr *target);
217 212
218extern int ndisc_mc_map(const struct in6_addr *addr, char *buf, 213int ndisc_mc_map(const struct in6_addr *addr, char *buf, struct net_device *dev,
219 struct net_device *dev, int dir); 214 int dir);
220 215
221 216
222/* 217/*
223 * IGMP 218 * IGMP
224 */ 219 */
225extern int igmp6_init(void); 220int igmp6_init(void);
226 221
227extern void igmp6_cleanup(void); 222void igmp6_cleanup(void);
228 223
229extern int igmp6_event_query(struct sk_buff *skb); 224int igmp6_event_query(struct sk_buff *skb);
230 225
231extern int igmp6_event_report(struct sk_buff *skb); 226int igmp6_event_report(struct sk_buff *skb);
232 227
233 228
234#ifdef CONFIG_SYSCTL 229#ifdef CONFIG_SYSCTL
235extern int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, 230int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, int write,
236 int write, 231 void __user *buffer, size_t *lenp, loff_t *ppos);
237 void __user *buffer,
238 size_t *lenp,
239 loff_t *ppos);
240int ndisc_ifinfo_sysctl_strategy(struct ctl_table *ctl, 232int ndisc_ifinfo_sysctl_strategy(struct ctl_table *ctl,
241 void __user *oldval, size_t __user *oldlenp, 233 void __user *oldval, size_t __user *oldlenp,
242 void __user *newval, size_t newlen); 234 void __user *newval, size_t newlen);
243#endif 235#endif
244 236
245extern void inet6_ifinfo_notify(int event, 237void inet6_ifinfo_notify(int event, struct inet6_dev *idev);
246 struct inet6_dev *idev);
247 238
248#endif 239#endif