patch-2.1.30 linux/include/net/ipv6_route.h
Next file: linux/include/net/ndisc.h
Previous file: linux/include/net/ipv6.h
Back to the patch index
Back to the overall index
- Lines: 201
- Date:
Wed Dec 31 16:00:00 1969
- Orig file:
v2.1.29/linux/include/net/ipv6_route.h
- Orig date:
Thu Dec 12 06:54:21 1996
diff -u --recursive --new-file v2.1.29/linux/include/net/ipv6_route.h linux/include/net/ipv6_route.h
@@ -1,200 +0,0 @@
-/*
- * Linux INET6 implementation
- *
- * Authors:
- * Pedro Roque <roque@di.fc.ul.pt>
- *
- * 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 _NET_IPV6_ROUTE_H
-#define _NET_IPV6_ROUTE_H
-
-#include <linux/ipv6_route.h>
-
-
-#ifdef __KERNEL__
-
-
-struct fib6_node {
- struct fib6_node *parent;
- struct fib6_node *left;
- struct fib6_node *right;
-
- struct rt6_info *leaf;
-
- __u16 fn_bit; /* bit key */
- __u16 fn_flags;
- __u32 fn_sernum;
-};
-
-
-struct rt6_info;
-
-typedef void (*rt6_output_method_t) (struct sk_buff *skb, struct rt6_info *rt);
-
-struct rt6_info {
- struct fib6_node *fib_node;
- struct rt6_info *next;
-
- struct in6_addr rt_dst;
-
- atomic_t rt_use; /* dcache references */
- atomic_t rt_ref; /* fib references */
-
- struct neighbour *rt_nexthop;
- struct device *rt_dev;
-
- rt6_output_method_t rt_output_method;
-
- __u16 rt_metric;
- __u16 rt_prefixlen;
- __u32 rt_flags;
- unsigned long rt_expires;
-};
-
-extern struct rt6_info *default_rt_list;
-extern struct rt6_info *last_resort_rt;
-
-struct dest_entry {
- struct rt6_info rt;
-
- __u32 dc_irtt;
- __u32 dc_window;
- __u16 dc_pmtu;
-
- unsigned long dc_tstamp; /* for garbage collection */
-
-#define dc_addr rt.rt_dst
-#define dc_usecnt rt.rt_use
-#define dc_nexthop rt.rt_nexthop
-#define dc_flags rt.rt_flags
-};
-
-/*
- * Structure for assync processing of operations on the routing
- * table
- */
-
-struct rt6_req {
- int operation;
- struct rt6_info *ptr;
-
- struct rt6_req *next;
- struct rt6_req *prev;
-
-#define RT_OPER_ADD 1
-#define RT_OPER_DEL 2
-};
-
-struct rt6_statistics {
- __u32 fib_nodes;
- __u32 fib_route_nodes;
- __u32 fib_rt_alloc;
- __u32 fib_rt_entries;
- __u32 fib_dc_alloc;
-};
-
-#define RTN_ROOT 0x0001 /* root node */
-#define RTN_BACKTRACK 0x0002 /* backtrack point */
-#define RTN_TAG 0x0010
-
-/*
- * Values for destination cache garbage colection
- * These are wild guesses for now...
- */
-
-#define DC_WATER_MARK 512
-#define DC_SHORT_TIMEOUT (5*HZ)
-#define DC_LONG_TIMEOUT (15*HZ)
-
-#define DC_TIME_RUN (5*HZ)
-#define DC_TIME_RETRY HZ
-
-#define RT6_FILTER_NONE 0
-#define RT6_FILTER_RTNODES 1
-/*
- * Prototypes
- */
-
-/*
- * check/obtain destination cache from routing table
- */
-
-extern struct dest_entry * ipv6_dst_check(struct dest_entry *dc,
- struct in6_addr * daddr,
- __u32 sernum, int flags);
-
-extern struct dest_entry * ipv6_dst_route(struct in6_addr * daddr,
- struct device *src_dev,
- int flags);
-
-extern void ipv6_dst_unlock(struct dest_entry *dest);
-
-extern struct rt6_info * fibv6_lookup(struct in6_addr *addr,
- struct device *dev,
- int flags);
-
-/*
- * user space set/del route
- */
-
-extern int ipv6_route_ioctl(unsigned int cmd, void *arg);
-
-
-extern void ipv6_route_init(void);
-extern void ipv6_route_cleanup(void);
-
-extern void rt6_ifdown(struct device *dev);
-
-extern int ipv6_route_add(struct in6_rtmsg *rt);
-
-extern int fib6_del_rt(struct rt6_info *rt);
-
-extern void rt6_sndmsg(__u32 type, struct in6_addr *dst,
- struct in6_addr *gw, __u16 plen,
- struct device *dev,
- __u16 metric, __u16 flags);
-/*
- * ICMP interface
- */
-
-extern struct rt6_info * ipv6_rt_redirect(struct device *dev,
- struct in6_addr *dest,
- struct in6_addr *target,
- int on_link);
-
-extern void rt6_handle_pmtu(struct in6_addr *addr,
- int pmtu);
-/*
- *
- */
-
-extern struct fib6_node routing_table;
-extern struct rt6_statistics rt6_stats;
-
-static __inline__ void rt_release(struct rt6_info *rt)
-{
- atomic_dec(&rt->rt_ref);
- if ((rt->rt_use | rt->rt_ref) == 0)
- {
- if (rt->rt_nexthop)
- {
- neighbour_unlock(rt->rt_nexthop);
- }
-
- if (rt->rt_flags & RTI_DCACHE)
- {
- rt6_stats.fib_dc_alloc--;
- }
- rt6_stats.fib_rt_alloc--;
- kfree(rt);
- }
-}
-
-#endif
-
-#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov