#include <net/flow.h>
#include <net/ip6_fib.h>
-#include <linux/tcp.h>
+#include <net/sock.h>
#include <linux/ip.h>
+#include <linux/ipv6.h>
struct pol_chain {
int type;
extern int ip6_route_add(struct in6_rtmsg *rtmsg,
struct nlmsghdr *,
- void *rtattr);
+ void *rtattr,
+ struct netlink_skb_parms *req);
+extern int ip6_ins_rt(struct rt6_info *,
+ struct nlmsghdr *,
+ void *rtattr,
+ struct netlink_skb_parms *req);
extern int ip6_del_rt(struct rt6_info *,
struct nlmsghdr *,
- void *rtattr);
+ void *rtattr,
+ struct netlink_skb_parms *req);
extern int ip6_rt_addr_add(struct in6_addr *addr,
struct net_device *dev,
extern int ndisc_dst_gc(int *more);
extern void fib6_force_start_gc(void);
+extern struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
+ const struct in6_addr *addr,
+ int anycast);
+
/*
* support functions for ND
*
extern struct rt6_info * rt6_add_dflt_router(struct in6_addr *gwaddr,
struct net_device *dev);
-extern void rt6_purge_dflt_routers(int lst_resort);
+extern void rt6_purge_dflt_routers(void);
+
+extern void rt6_reset_dflt_pointer(struct rt6_info *rt);
extern void rt6_redirect(struct in6_addr *dest,
struct in6_addr *saddr,
struct neighbour *neigh,
+ u8 *lladdr,
int on_link);
extern void rt6_pmtu_discovery(struct in6_addr *daddr,
/*
* Store a destination cache entry in a socket
- * For UDP/RAW sockets this is done on udp_connect.
*/
-
static inline void ip6_dst_store(struct sock *sk, struct dst_entry *dst,
struct in6_addr *daddr)
{