193a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik/* 293a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * Linux INET6 implementation 393a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * 493a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * Authors: 593a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * Pedro Roque <roque@di.fc.ul.pt> 693a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * 793a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * This program is free software; you can redistribute it and/or 893a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * modify it under the terms of the GNU General Public License 993a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * as published by the Free Software Foundation; either version 1093a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik * 2 of the License, or (at your option) any later version. 1193a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik */ 1293a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 1393a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#ifndef _LINUX_IPV6_ROUTE_H 1493a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define _LINUX_IPV6_ROUTE_H 1593a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 1693a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#include <linux/types.h> 1793a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 1893a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_DEFAULT 0x00010000 /* default - learned via ND */ 1993a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed) 2093a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik fallback, no routers on link */ 2193a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ 2293a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */ 2393a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_ANYCAST 0x00100000 /* Anycast */ 2493a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 2593a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ 2693a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_EXPIRES 0x00400000 2793a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 2893a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_ROUTEINFO 0x00800000 /* route information - RA */ 2993a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 3093a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_CACHE 0x01000000 /* cache entry */ 3193a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_FLOW 0x02000000 /* flow significant route */ 3293a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_POLICY 0x04000000 /* policy route */ 3393a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 3493a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_PREF(pref) ((pref) << 27) 3593a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_PREF_MASK 0x18000000 3693a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 3793a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTF_LOCAL 0x80000000 3893a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 3993a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#ifdef __KERNEL__ 4093a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define IPV6_EXTRACT_PREF(flag) (((flag) & RTF_PREF_MASK) >> 27) 4193a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define IPV6_DECODE_PREF(pref) ((pref) ^ 2) /* 1:low,2:med,3:high */ 4293a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#endif 4393a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 4493a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naikstruct in6_rtmsg { 4593a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik struct in6_addr rtmsg_dst; 4693a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik struct in6_addr rtmsg_src; 4793a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik struct in6_addr rtmsg_gateway; 4893a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik __u32 rtmsg_type; 4993a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik __u16 rtmsg_dst_len; 5093a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik __u16 rtmsg_src_len; 5193a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik __u32 rtmsg_metric; 5293a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik unsigned long rtmsg_info; 5393a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik __u32 rtmsg_flags; 5493a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik int rtmsg_ifindex; 5593a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik}; 5693a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 5793a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTMSG_NEWDEVICE 0x11 5893a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTMSG_DELDEVICE 0x12 5993a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTMSG_NEWROUTE 0x21 6093a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#define RTMSG_DELROUTE 0x22 6193a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik 6293a8d6ab33206b9114553b86ddaf81b690e382d5Banavathu, Srinivas Naik#endif 63