[IPV6]: ROUTE: Add experimental support for Route Information Option in RA (RFC4191).
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
52e1635631
commit
70ceb4f539
@ -7,6 +7,23 @@
|
||||
#define IP6_RT_PRIO_KERN 512
|
||||
#define IP6_RT_FLOW_MASK 0x00ff
|
||||
|
||||
struct route_info {
|
||||
__u8 type;
|
||||
__u8 length;
|
||||
__u8 prefix_len;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 reserved_h:3,
|
||||
route_pref:2,
|
||||
reserved_l:3;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 reserved_l:3,
|
||||
route_pref:2,
|
||||
reserved_h:3;
|
||||
#endif
|
||||
__u32 lifetime;
|
||||
__u8 prefix[0]; /* 0,8 or 16 */
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <net/flow.h>
|
||||
@ -92,6 +109,10 @@ extern struct rt6_info * rt6_add_dflt_router(struct in6_addr *gwaddr,
|
||||
|
||||
extern void rt6_purge_dflt_routers(void);
|
||||
|
||||
extern int rt6_route_rcv(struct net_device *dev,
|
||||
u8 *opt, int len,
|
||||
struct in6_addr *gwaddr);
|
||||
|
||||
extern void rt6_redirect(struct in6_addr *dest,
|
||||
struct in6_addr *saddr,
|
||||
struct neighbour *neigh,
|
||||
|
@ -22,6 +22,8 @@ enum {
|
||||
ND_OPT_PREFIX_INFO = 3, /* RFC2461 */
|
||||
ND_OPT_REDIRECT_HDR = 4, /* RFC2461 */
|
||||
ND_OPT_MTU = 5, /* RFC2461 */
|
||||
__ND_OPT_ARRAY_MAX,
|
||||
ND_OPT_ROUTE_INFO = 24, /* RFC4191 */
|
||||
__ND_OPT_MAX
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user