diff options
Diffstat (limited to 'include/net/ndisc.h')
-rw-r--r-- | include/net/ndisc.h | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 59b70624b056..9c451ff2f4f4 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h | |||
@@ -12,6 +12,15 @@ | |||
12 | #define NDISC_REDIRECT 137 | 12 | #define NDISC_REDIRECT 137 |
13 | 13 | ||
14 | /* | 14 | /* |
15 | * Router type: cross-layer information from link-layer to | ||
16 | * IPv6 layer reported by certain link types (e.g., RFC4214). | ||
17 | */ | ||
18 | #define NDISC_NODETYPE_UNSPEC 0 /* unspecified (default) */ | ||
19 | #define NDISC_NODETYPE_HOST 1 /* host or unauthorized router */ | ||
20 | #define NDISC_NODETYPE_NODEFAULT 2 /* non-default router */ | ||
21 | #define NDISC_NODETYPE_DEFAULT 3 /* default router */ | ||
22 | |||
23 | /* | ||
15 | * ndisc options | 24 | * ndisc options |
16 | */ | 25 | */ |
17 | 26 | ||
@@ -77,7 +86,7 @@ struct nd_opt_hdr { | |||
77 | } __attribute__((__packed__)); | 86 | } __attribute__((__packed__)); |
78 | 87 | ||
79 | 88 | ||
80 | extern int ndisc_init(struct net_proto_family *ops); | 89 | extern int ndisc_init(void); |
81 | 90 | ||
82 | extern void ndisc_cleanup(void); | 91 | extern void ndisc_cleanup(void); |
83 | 92 | ||
@@ -85,20 +94,17 @@ extern int ndisc_rcv(struct sk_buff *skb); | |||
85 | 94 | ||
86 | extern void ndisc_send_ns(struct net_device *dev, | 95 | extern void ndisc_send_ns(struct net_device *dev, |
87 | struct neighbour *neigh, | 96 | struct neighbour *neigh, |
88 | struct in6_addr *solicit, | 97 | const struct in6_addr *solicit, |
89 | struct in6_addr *daddr, | 98 | const struct in6_addr *daddr, |
90 | struct in6_addr *saddr); | 99 | const struct in6_addr *saddr); |
91 | 100 | ||
92 | extern void ndisc_send_rs(struct net_device *dev, | 101 | extern void ndisc_send_rs(struct net_device *dev, |
93 | struct in6_addr *saddr, | 102 | const struct in6_addr *saddr, |
94 | struct in6_addr *daddr); | 103 | const struct in6_addr *daddr); |
95 | |||
96 | extern void ndisc_forwarding_on(void); | ||
97 | extern void ndisc_forwarding_off(void); | ||
98 | 104 | ||
99 | extern void ndisc_send_redirect(struct sk_buff *skb, | 105 | extern void ndisc_send_redirect(struct sk_buff *skb, |
100 | struct neighbour *neigh, | 106 | struct neighbour *neigh, |
101 | struct in6_addr *target); | 107 | const struct in6_addr *target); |
102 | 108 | ||
103 | extern int ndisc_mc_map(struct in6_addr *addr, char *buf, struct net_device *dev, int dir); | 109 | extern int ndisc_mc_map(struct in6_addr *addr, char *buf, struct net_device *dev, int dir); |
104 | 110 | ||
@@ -107,7 +113,7 @@ extern int ndisc_mc_map(struct in6_addr *addr, char *buf, struct net_device *d | |||
107 | /* | 113 | /* |
108 | * IGMP | 114 | * IGMP |
109 | */ | 115 | */ |
110 | extern int igmp6_init(struct net_proto_family *ops); | 116 | extern int igmp6_init(void); |
111 | 117 | ||
112 | extern void igmp6_cleanup(void); | 118 | extern void igmp6_cleanup(void); |
113 | 119 | ||
@@ -115,7 +121,6 @@ extern int igmp6_event_query(struct sk_buff *skb); | |||
115 | 121 | ||
116 | extern int igmp6_event_report(struct sk_buff *skb); | 122 | extern int igmp6_event_report(struct sk_buff *skb); |
117 | 123 | ||
118 | extern void igmp6_cleanup(void); | ||
119 | 124 | ||
120 | #ifdef CONFIG_SYSCTL | 125 | #ifdef CONFIG_SYSCTL |
121 | extern int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, | 126 | extern int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, |
@@ -129,7 +134,7 @@ extern int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, | |||
129 | extern void inet6_ifinfo_notify(int event, | 134 | extern void inet6_ifinfo_notify(int event, |
130 | struct inet6_dev *idev); | 135 | struct inet6_dev *idev); |
131 | 136 | ||
132 | static inline struct neighbour * ndisc_get_neigh(struct net_device *dev, struct in6_addr *addr) | 137 | static inline struct neighbour * ndisc_get_neigh(struct net_device *dev, const struct in6_addr *addr) |
133 | { | 138 | { |
134 | 139 | ||
135 | if (dev) | 140 | if (dev) |