Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
[linux-2.6] / include / linux / ipv6_route.h
1 /*
2  *      Linux INET6 implementation 
3  *
4  *      Authors:
5  *      Pedro Roque             <roque@di.fc.ul.pt>     
6  *
7  *      This program is free software; you can redistribute it and/or
8  *      modify it under the terms of the GNU General Public License
9  *      as published by the Free Software Foundation; either version
10  *      2 of the License, or (at your option) any later version.
11  */
12
13 #ifndef _LINUX_IPV6_ROUTE_H
14 #define _LINUX_IPV6_ROUTE_H
15
16 #include <linux/types.h>
17
18 #define RTF_DEFAULT     0x00010000      /* default - learned via ND     */
19 #define RTF_ALLONLINK   0x00020000      /* (deprecated and will be removed)
20                                            fallback, no routers on link */
21 #define RTF_ADDRCONF    0x00040000      /* addrconf route - RA          */
22 #define RTF_PREFIX_RT   0x00080000      /* A prefix only route - RA     */
23 #define RTF_ANYCAST     0x00100000      /* Anycast                      */
24
25 #define RTF_NONEXTHOP   0x00200000      /* route with no nexthop        */
26 #define RTF_EXPIRES     0x00400000
27
28 #define RTF_ROUTEINFO   0x00800000      /* route information - RA       */
29
30 #define RTF_CACHE       0x01000000      /* cache entry                  */
31 #define RTF_FLOW        0x02000000      /* flow significant route       */
32 #define RTF_POLICY      0x04000000      /* policy route                 */
33
34 #define RTF_PREF(pref)  ((pref) << 27)
35 #define RTF_PREF_MASK   0x18000000
36
37 #define RTF_LOCAL       0x80000000
38
39 #ifdef __KERNEL__
40 #define IPV6_EXTRACT_PREF(flag) (((flag) & RTF_PREF_MASK) >> 27)
41 #define IPV6_DECODE_PREF(pref)  ((pref) ^ 2)    /* 1:low,2:med,3:high */
42 #endif
43
44 struct in6_rtmsg {
45         struct in6_addr         rtmsg_dst;
46         struct in6_addr         rtmsg_src;
47         struct in6_addr         rtmsg_gateway;
48         __u32                   rtmsg_type;
49         __u16                   rtmsg_dst_len;
50         __u16                   rtmsg_src_len;
51         __u32                   rtmsg_metric;
52         unsigned long           rtmsg_info;
53         __u32                   rtmsg_flags;
54         int                     rtmsg_ifindex;
55 };
56
57 #define RTMSG_NEWDEVICE         0x11
58 #define RTMSG_DELDEVICE         0x12
59 #define RTMSG_NEWROUTE          0x21
60 #define RTMSG_DELROUTE          0x22
61
62 #endif