From c04d001c962e756d152abc1dbd58edfdbfee45a1 Mon Sep 17 00:00:00 2001 From: Tias Guns Date: Mon, 19 Mar 2012 18:24:29 +0000 Subject: [PATCH] fix ipv6, add ipv6_route.h from 'in6_rtmsg' by Dan Drown "in6_rtmsg defined in linux/ipv6_route.h" http://dan.drown.org/android/src/busybox/ --- include/linux/ipv6_route.h | 58 ++++++++++++++++++++++++++++++++++++++++++++ networking/ifconfig.c | 2 + networking/route.c | 2 + 3 files changed, 62 insertions(+), 0 deletions(-) create mode 100644 include/linux/ipv6_route.h diff --git a/include/linux/ipv6_route.h b/include/linux/ipv6_route.h new file mode 100644 index 0000000..144875d --- /dev/null +++ b/include/linux/ipv6_route.h @@ -0,0 +1,58 @@ +/* + * Linux INET6 implementation + * + * Authors: + * Pedro Roque + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IPV6_ROUTE_H +#define _LINUX_IPV6_ROUTE_H + +#include + +#define RTF_DEFAULT 0x00010000 /* default - learned via ND */ +#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed) + fallback, no routers on link */ +#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ +#define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */ +#define RTF_ANYCAST 0x00100000 /* Anycast */ + +#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ +#define RTF_EXPIRES 0x00400000 + +#define RTF_ROUTEINFO 0x00800000 /* route information - RA */ + +#define RTF_CACHE 0x01000000 /* cache entry */ +#define RTF_FLOW 0x02000000 /* flow significant route */ +#define RTF_POLICY 0x04000000 /* policy route */ + +#define RTF_PREF(pref) ((pref) << 27) +#define RTF_PREF_MASK 0x18000000 + +#define RTF_LOCAL 0x80000000 + + +struct in6_rtmsg { + struct in6_addr rtmsg_dst; + struct in6_addr rtmsg_src; + struct in6_addr rtmsg_gateway; + __u32 rtmsg_type; + __u16 rtmsg_dst_len; + __u16 rtmsg_src_len; + __u32 rtmsg_metric; + unsigned long rtmsg_info; + __u32 rtmsg_flags; + int rtmsg_ifindex; +}; + +#define RTMSG_NEWDEVICE 0x11 +#define RTMSG_DELDEVICE 0x12 +#define RTMSG_NEWROUTE 0x21 +#define RTMSG_DELROUTE 0x22 + +#endif diff --git a/networking/ifconfig.c b/networking/ifconfig.c index b6604f5..12e8198 100644 --- a/networking/ifconfig.c +++ b/networking/ifconfig.c @@ -79,12 +79,14 @@ #endif #if ENABLE_FEATURE_IPV6 +#ifndef __BIONIC__ struct in6_ifreq { struct in6_addr ifr6_addr; uint32_t ifr6_prefixlen; int ifr6_ifindex; }; #endif +#endif /* * Here are the bit masks for the "flags" member of struct options below. diff --git a/networking/route.c b/networking/route.c index b7b5a02..a060eb2 100644 --- a/networking/route.c +++ b/networking/route.c @@ -35,6 +35,8 @@ #include #include +#include +#include #include "libbb.h" #include "inet_common.h" -- 1.7.0.4