vserver 2.0 rc7
[linux-2.6.git] / include / net / ip_fib.h
index 9f28dff..e5a5f6b 100644 (file)
@@ -37,6 +37,7 @@ struct kern_rta {
        u32             *rta_flow;
        struct rta_cacheinfo *rta_ci;
        struct rta_session *rta_sess;
+       u32             *rta_mp_alg;
 };
 
 struct fib_info;
@@ -80,6 +81,9 @@ struct fib_info {
        int                     fib_nhs;
 #ifdef CONFIG_IP_ROUTE_MULTIPATH
        int                     fib_power;
+#endif
+#ifdef CONFIG_IP_ROUTE_MULTIPATH_CACHED
+       u32                     fib_mp_alg;
 #endif
        struct fib_nh           fib_nh[0];
 #define fib_dev                fib_nh[0].nh_dev
@@ -95,6 +99,10 @@ struct fib_result {
        unsigned char   nh_sel;
        unsigned char   type;
        unsigned char   scope;
+#ifdef CONFIG_IP_ROUTE_MULTIPATH_CACHED
+       __u32           network;
+       __u32           netmask;
+#endif
        struct fib_info *fi;
 #ifdef CONFIG_IP_MULTIPLE_TABLES
        struct fib_rule *r;
@@ -119,6 +127,14 @@ struct fib_result {
 #define FIB_RES_DEV(res)               (FIB_RES_NH(res).nh_dev)
 #define FIB_RES_OIF(res)               (FIB_RES_NH(res).nh_oif)
 
+#ifdef CONFIG_IP_ROUTE_MULTIPATH_CACHED
+#define FIB_RES_NETWORK(res)           ((res).network)
+#define FIB_RES_NETMASK(res)           ((res).netmask)
+#else /* CONFIG_IP_ROUTE_MULTIPATH_CACHED */
+#define FIB_RES_NETWORK(res)           (0)
+#define FIB_RES_NETMASK(res)           (0)
+#endif /* CONFIG_IP_ROUTE_MULTIPATH_WRANDOM */
+
 struct fib_table {
        unsigned char   tb_id;
        unsigned        tb_stamp;