OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [net/] [ip6_route.h] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
#ifndef _NET_IP6_ROUTE_H
2
#define _NET_IP6_ROUTE_H
3
 
4
#define IP6_RT_PRIO_FW          16
5
#define IP6_RT_PRIO_USER        1024
6
#define IP6_RT_PRIO_ADDRCONF    256
7
#define IP6_RT_PRIO_KERN        512
8
#define IP6_RT_FLOW_MASK        0x00ff
9
 
10
#ifdef __KERNEL__
11
 
12
#include <net/flow.h>
13
#include <net/ip6_fib.h>
14
 
15
struct pol_chain {
16
        int                     type;
17
        int                     priority;
18
        struct fib6_node        *rules;
19
        struct pol_chain        *next;
20
};
21
 
22
extern struct rt6_info  ip6_null_entry;
23
 
24
extern int ip6_rt_max_size;
25
extern int ip6_rt_gc_min;
26
extern int ip6_rt_gc_timeout;
27
extern int ip6_rt_gc_interval;
28
 
29
extern void                     ip6_route_input(struct sk_buff *skb);
30
 
31
extern struct dst_entry *       ip6_route_output(struct sock *sk,
32
                                                 struct flowi *fl);
33
 
34
extern int                      ip6_route_me_harder(struct sk_buff *skb);
35
 
36
extern void                     ip6_route_init(void);
37
extern void                     ip6_route_cleanup(void);
38
 
39
extern int                      ipv6_route_ioctl(unsigned int cmd, void *arg);
40
 
41
extern int                      ip6_route_add(struct in6_rtmsg *rtmsg,
42
                                              struct nlmsghdr *);
43
extern int                      ip6_del_rt(struct rt6_info *,
44
                                           struct nlmsghdr *);
45
 
46
extern int                      ip6_rt_addr_add(struct in6_addr *addr,
47
                                                struct net_device *dev);
48
 
49
extern int                      ip6_rt_addr_del(struct in6_addr *addr,
50
                                                struct net_device *dev);
51
 
52
extern void                     rt6_sndmsg(int type, struct in6_addr *dst,
53
                                           struct in6_addr *src,
54
                                           struct in6_addr *gw,
55
                                           struct net_device *dev,
56
                                           int dstlen, int srclen,
57
                                           int metric, __u32 flags);
58
 
59
extern struct rt6_info          *rt6_lookup(struct in6_addr *daddr,
60
                                            struct in6_addr *saddr,
61
                                            int oif, int flags);
62
 
63
/*
64
 *      support functions for ND
65
 *
66
 */
67
extern struct rt6_info *        rt6_get_dflt_router(struct in6_addr *addr,
68
                                                    struct net_device *dev);
69
extern struct rt6_info *        rt6_add_dflt_router(struct in6_addr *gwaddr,
70
                                                    struct net_device *dev);
71
 
72
extern void                     rt6_purge_dflt_routers(int lst_resort);
73
 
74
extern void                     rt6_redirect(struct in6_addr *dest,
75
                                             struct in6_addr *saddr,
76
                                             struct neighbour *neigh,
77
                                             int on_link);
78
 
79
extern void                     rt6_pmtu_discovery(struct in6_addr *daddr,
80
                                                   struct in6_addr *saddr,
81
                                                   struct net_device *dev,
82
                                                   u32 pmtu);
83
 
84
struct nlmsghdr;
85
struct netlink_callback;
86
extern int inet6_dump_fib(struct sk_buff *skb, struct netlink_callback *cb);
87
extern int inet6_rtm_newroute(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg);
88
extern int inet6_rtm_delroute(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg);
89
extern int inet6_rtm_getroute(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg);
90
 
91
extern void rt6_ifdown(struct net_device *dev);
92
extern void rt6_mtu_change(struct net_device *dev, unsigned mtu);
93
 
94
extern rwlock_t rt6_lock;
95
 
96
/*
97
 *      Store a destination cache entry in a socket
98
 *      For UDP/RAW sockets this is done on udp_connect.
99
 */
100
 
101
static inline void ip6_dst_store(struct sock *sk, struct dst_entry *dst,
102
                                     struct in6_addr *daddr)
103
{
104
        struct ipv6_pinfo *np = &sk->net_pinfo.af_inet6;
105
        struct rt6_info *rt = (struct rt6_info *) dst;
106
 
107
        write_lock(&sk->dst_lock);
108
        __sk_dst_set(sk, dst);
109
        np->daddr_cache = daddr;
110
        np->dst_cookie = rt->rt6i_node ? rt->rt6i_node->fn_sernum : 0;
111
        write_unlock(&sk->dst_lock);
112
}
113
 
114
#endif
115
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.