Bluetooth: Add CID field to L2CAP socket address structure
[safe/jmp/linux-2.6] / include / net / ndisc.h
index 1642423..1459ed3 100644 (file)
@@ -94,20 +94,34 @@ extern int                  ndisc_rcv(struct sk_buff *skb);
 
 extern void                    ndisc_send_ns(struct net_device *dev,
                                              struct neighbour *neigh,
-                                             struct in6_addr *solicit,
-                                             struct in6_addr *daddr,
-                                             struct in6_addr *saddr);
+                                             const struct in6_addr *solicit,
+                                             const struct in6_addr *daddr,
+                                             const struct in6_addr *saddr);
 
 extern void                    ndisc_send_rs(struct net_device *dev,
-                                             struct in6_addr *saddr,
-                                             struct in6_addr *daddr);
+                                             const struct in6_addr *saddr,
+                                             const struct in6_addr *daddr);
 
 extern void                    ndisc_send_redirect(struct sk_buff *skb,
                                                    struct neighbour *neigh,
-                                                   struct in6_addr *target);
+                                                   const struct in6_addr *target);
 
 extern int                     ndisc_mc_map(struct in6_addr *addr, char *buf, struct net_device *dev, int dir);
 
+extern struct sk_buff          *ndisc_build_skb(struct net_device *dev,
+                                                const struct in6_addr *daddr,
+                                                const struct in6_addr *saddr,
+                                                struct icmp6hdr *icmp6h,
+                                                const struct in6_addr *target,
+                                                int llinfo);
+
+extern void                    ndisc_send_skb(struct sk_buff *skb,
+                                              struct net_device *dev,
+                                              struct neighbour *neigh,
+                                              const struct in6_addr *daddr,
+                                              const struct in6_addr *saddr,
+                                              struct icmp6hdr *icmp6h);
+
 
 
 /*
@@ -129,18 +143,21 @@ extern int                        ndisc_ifinfo_sysctl_change(struct ctl_table *ctl,
                                                           void __user *buffer,
                                                           size_t *lenp,
                                                           loff_t *ppos);
+int ndisc_ifinfo_sysctl_strategy(ctl_table *ctl,
+                                void __user *oldval, size_t __user *oldlenp,
+                                void __user *newval, size_t newlen);
 #endif
 
 extern void                    inet6_ifinfo_notify(int event,
                                                    struct inet6_dev *idev);
 
-static inline struct neighbour * ndisc_get_neigh(struct net_device *dev, struct in6_addr *addr)
+static inline struct neighbour * ndisc_get_neigh(struct net_device *dev, const struct in6_addr *addr)
 {
 
        if (dev)
-               return __neigh_lookup(&nd_tbl, addr, dev, 1);
+               return __neigh_lookup_errno(&nd_tbl, addr, dev);
 
-       return NULL;
+       return ERR_PTR(-ENODEV);
 }