Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
route.c File Reference
#include <linux/capability.h>
#include <linux/errno.h>
#include <linux/export.h>
#include <linux/types.h>
#include <linux/times.h>
#include <linux/socket.h>
#include <linux/sockios.h>
#include <linux/net.h>
#include <linux/route.h>
#include <linux/netdevice.h>
#include <linux/in6.h>
#include <linux/mroute6.h>
#include <linux/init.h>
#include <linux/if_arp.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/nsproxy.h>
#include <linux/slab.h>
#include <net/net_namespace.h>
#include <net/snmp.h>
#include <net/ipv6.h>
#include <net/ip6_fib.h>
#include <net/ip6_route.h>
#include <net/ndisc.h>
#include <net/addrconf.h>
#include <net/tcp.h>
#include <linux/rtnetlink.h>
#include <net/dst.h>
#include <net/xfrm.h>
#include <net/netevent.h>
#include <net/netlink.h>
#include <asm/uaccess.h>

Go to the source code of this file.

Data Structures

struct  arg_dev_net_ip
 
struct  arg_dev_net
 
struct  rt6_mtu_change_arg
 

Macros

#define pr_fmt(fmt)   "IPv6: " fmt
 
#define BACKTRACK(__net, saddr)
 

Functions

void rt6_bind_peer (struct rt6_info *rt, int create)
 
struct dst_entryip6_route_lookup (struct net *net, struct flowi6 *fl6, int flags)
 
 EXPORT_SYMBOL_GPL (ip6_route_lookup)
 
struct rt6_infort6_lookup (struct net *net, const struct in6_addr *daddr, const struct in6_addr *saddr, int oif, int strict)
 
 EXPORT_SYMBOL (rt6_lookup)
 
int ip6_ins_rt (struct rt6_info *rt)
 
void ip6_route_input (struct sk_buff *skb)
 
struct dst_entryip6_route_output (struct net *net, const struct sock *sk, struct flowi6 *fl6)
 
 EXPORT_SYMBOL (ip6_route_output)
 
struct dst_entryip6_blackhole_route (struct net *net, struct dst_entry *dst_orig)
 
void ip6_update_pmtu (struct sk_buff *skb, struct net *net, __be32 mtu, int oif, u32 mark)
 
 EXPORT_SYMBOL_GPL (ip6_update_pmtu)
 
void ip6_sk_update_pmtu (struct sk_buff *skb, struct sock *sk, __be32 mtu)
 
 EXPORT_SYMBOL_GPL (ip6_sk_update_pmtu)
 
void ip6_redirect (struct sk_buff *skb, struct net *net, int oif, u32 mark)
 
 EXPORT_SYMBOL_GPL (ip6_redirect)
 
void ip6_sk_redirect (struct sk_buff *skb, struct sock *sk)
 
 EXPORT_SYMBOL_GPL (ip6_sk_redirect)
 
struct dst_entryicmp6_dst_alloc (struct net_device *dev, struct neighbour *neigh, struct flowi6 *fl6)
 
int icmp6_dst_gc (void)
 
int ip6_dst_hoplimit (struct dst_entry *dst)
 
 EXPORT_SYMBOL (ip6_dst_hoplimit)
 
int ip6_route_add (struct fib6_config *cfg)
 
int ip6_del_rt (struct rt6_info *rt)
 
struct rt6_infort6_get_dflt_router (const struct in6_addr *addr, struct net_device *dev)
 
struct rt6_infort6_add_dflt_router (const struct in6_addr *gwaddr, struct net_device *dev, unsigned int pref)
 
void rt6_purge_dflt_routers (struct net *net)
 
int ipv6_route_ioctl (struct net *net, unsigned int cmd, void __user *arg)
 
struct rt6_infoaddrconf_dst_alloc (struct inet6_dev *idev, const struct in6_addr *addr, bool anycast)
 
int ip6_route_get_saddr (struct net *net, struct rt6_info *rt, const struct in6_addr *daddr, unsigned int prefs, struct in6_addr *saddr)
 
void rt6_remove_prefsrc (struct inet6_ifaddr *ifp)
 
void rt6_ifdown (struct net *net, struct net_device *dev)
 
void rt6_mtu_change (struct net_device *dev, unsigned int mtu)
 
int rt6_dump_route (struct rt6_info *rt, void *p_arg)
 
void inet6_rt_notify (int event, struct rt6_info *rt, struct nl_info *info)
 
int __init ip6_route_init (void)
 
void ip6_route_cleanup (void)
 

Macro Definition Documentation

#define BACKTRACK (   __net,
  saddr 
)
Value:
do { \
if (rt == __net->ipv6.ip6_null_entry) { \
while (1) { \
if (fn->fn_flags & RTN_TL_ROOT) \
goto out; \
pn = fn->parent; \
if (FIB6_SUBTREE(pn) && FIB6_SUBTREE(pn) != fn) \
else \
fn = pn; \
if (fn->fn_flags & RTN_RTINFO) \
goto restart; \
} \
} \
} while (0)

Definition at line 675 of file route.c.

#define pr_fmt (   fmt)    "IPv6: " fmt

Definition at line 27 of file route.c.

Function Documentation

struct rt6_info* addrconf_dst_alloc ( struct inet6_dev idev,
const struct in6_addr addr,
bool  anycast 
)
read

Definition at line 2075 of file route.c.

EXPORT_SYMBOL ( rt6_lookup  )
EXPORT_SYMBOL ( ip6_route_output  )
EXPORT_SYMBOL ( ip6_dst_hoplimit  )
EXPORT_SYMBOL_GPL ( ip6_route_lookup  )
EXPORT_SYMBOL_GPL ( ip6_update_pmtu  )
EXPORT_SYMBOL_GPL ( ip6_sk_update_pmtu  )
EXPORT_SYMBOL_GPL ( ip6_redirect  )
EXPORT_SYMBOL_GPL ( ip6_sk_redirect  )
struct dst_entry* icmp6_dst_alloc ( struct net_device dev,
struct neighbour neigh,
struct flowi6 fl6 
)
read

Definition at line 1198 of file route.c.

int icmp6_dst_gc ( void  )

Definition at line 1250 of file route.c.

void inet6_rt_notify ( int  event,
struct rt6_info rt,
struct nl_info info 
)

Definition at line 2625 of file route.c.

struct dst_entry* ip6_blackhole_route ( struct net net,
struct dst_entry dst_orig 
)
read

Definition at line 975 of file route.c.

int ip6_del_rt ( struct rt6_info rt)

Definition at line 1611 of file route.c.

int ip6_dst_hoplimit ( struct dst_entry dst)

Definition at line 1325 of file route.c.

int ip6_ins_rt ( struct rt6_info rt)

Definition at line 765 of file route.c.

void ip6_redirect ( struct sk_buff skb,
struct net net,
int  oif,
u32  mark 
)

Definition at line 1127 of file route.c.

int ip6_route_add ( struct fib6_config cfg)

Definition at line 1348 of file route.c.

void ip6_route_cleanup ( void  )

Definition at line 3105 of file route.c.

int ip6_route_get_saddr ( struct net net,
struct rt6_info rt,
const struct in6_addr daddr,
unsigned int  prefs,
struct in6_addr saddr 
)

Definition at line 2115 of file route.c.

int __init ip6_route_init ( void  )

Definition at line 3021 of file route.c.

void ip6_route_input ( struct sk_buff skb)

Definition at line 932 of file route.c.

struct dst_entry* ip6_route_lookup ( struct net net,
struct flowi6 fl6,
int  flags 
)
read

Definition at line 713 of file route.c.

struct dst_entry* ip6_route_output ( struct net net,
const struct sock sk,
struct flowi6 fl6 
)
read

Definition at line 955 of file route.c.

void ip6_sk_redirect ( struct sk_buff skb,
struct sock sk 
)

Definition at line 1148 of file route.c.

void ip6_sk_update_pmtu ( struct sk_buff skb,
struct sock sk,
__be32  mtu 
)

Definition at line 1120 of file route.c.

void ip6_update_pmtu ( struct sk_buff skb,
struct net net,
__be32  mtu,
int  oif,
u32  mark 
)

Definition at line 1098 of file route.c.

int ipv6_route_ioctl ( struct net net,
unsigned int  cmd,
void __user arg 
)

Definition at line 1981 of file route.c.

struct rt6_info* rt6_add_dflt_router ( const struct in6_addr gwaddr,
struct net_device dev,
unsigned int  pref 
)
read

Definition at line 1915 of file route.c.

void rt6_bind_peer ( struct rt6_info rt,
int  create 
)

Definition at line 328 of file route.c.

int rt6_dump_route ( struct rt6_info rt,
void p_arg 
)

Definition at line 2520 of file route.c.

struct rt6_info* rt6_get_dflt_router ( const struct in6_addr addr,
struct net_device dev 
)
read

Definition at line 1893 of file route.c.

void rt6_ifdown ( struct net net,
struct net_device dev 
)

Definition at line 2181 of file route.c.

struct rt6_info* rt6_lookup ( struct net net,
const struct in6_addr daddr,
const struct in6_addr saddr,
int  oif,
int  strict 
)
read

Definition at line 720 of file route.c.

void rt6_mtu_change ( struct net_device dev,
unsigned int  mtu 
)

Definition at line 2236 of file route.c.

void rt6_purge_dflt_routers ( struct net net)

Definition at line 1937 of file route.c.

void rt6_remove_prefsrc ( struct inet6_ifaddr ifp)

Definition at line 2153 of file route.c.