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_entry * ip6_route_lookup (struct net *net, struct flowi6 *fl6, int flags)
 
 EXPORT_SYMBOL_GPL (ip6_route_lookup)
 
struct rt6_info * rt6_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_entry * ip6_route_output (struct net *net, const struct sock *sk, struct flowi6 *fl6)
 
 EXPORT_SYMBOL (ip6_route_output)
 
struct dst_entry * ip6_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_entry * icmp6_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_info * rt6_get_dflt_router (const struct in6_addr *addr, struct net_device *dev)
 
struct rt6_info * rt6_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_info * addrconf_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.