Thomas Graf wrote:
Hi Thomas,
> Derived from net/ipv6/fib_rules.c
do you mean net/ipv4/fib_rules.c or net/ipv6/fib6_rules.c? :-)
A couple of comments below.
> Signed-off-by: Thomas Graf <[EMAIL PROTECTED]>
>
> Index: net-2.6.git/include/linux/fib_rules.h
> ===================================================================
> --- /dev/null
> +++ net-2.6.git/include/linux/fib_rules.h
> @@ -0,0 +1,60 @@
> +#ifndef __LINUX_FIB_RULES_H
> +#define __LINUX_FIB_RULES_H
> +
> +#include <linux/types.h>
> +#include <linux/rtnetlink.h>
> +
> +/* rule is permanent, and cannot be deleted */
> +#define FIB_RULE_PERMANENT 1
> +
> +struct fib_rule_hdr
> +{
> + __u8 family;
> + __u8 dst_len;
> + __u8 src_len;
> + __u8 tos;
> +
> + __u8 table;
> + __u8 res1; /* reserved */
> + __u8 res2; /* reserved */
> + __u8 action;
> +
> + __u32 flags;
> +};
I'm wondering if this is guaranteed to be equvalent to struct rtmsg?
struct rtmsg
{
unsigned char rtm_family;
unsigned char rtm_dst_len;
unsigned char rtm_src_len;
unsigned char rtm_tos;
unsigned char rtm_table; /* Routing table id */
unsigned char rtm_protocol; /* Routing protocol; see below
*/
unsigned char rtm_scope; /* See below */
unsigned char rtm_type; /* See below */
unsigned rtm_flags;
};
Won't we otherwise be breaking the existing userland interface?
> +enum
> +{
> + FRA_UNSPEC,
> + FRA_DST, /* destination address */
> + FRA_SRC, /* source address */
> + FRA_IFNAME, /* interface name */
> + FRA_UNUSED1,
> + FRA_UNUSED2,
> + FRA_PRIORITY, /* priority/preference */
> + FRA_UNUSED3,
> + FRA_UNUSED4,
> + FRA_UNUSED5,
> + FRA_FWMARK, /* netfilter mark (IPv4) */
> + FRA_FLOW, /* flow/class id */
> + __FRA_MAX
> +};
> +
> +#define FRA_MAX (__FRA_MAX - 1)
> +
> +enum
> +{
> + FR_ACT_UNSPEC,
> + FR_ACT_TO_TBL, /* Pass to fixed table */
> + FR_ACT_RES1,
> + FR_ACT_RES2,
> + FR_ACT_RES3,
> + FR_ACT_RES4,
> + FR_ACT_BLACKHOLE, /* Drop without notification */
> + FR_ACT_UNREACHABLE, /* Drop with ENETUNREACH */
> + FR_ACT_PROHIBIT, /* Drop with EACCES */
> + __FR_ACT_MAX,
> +};
> +
> +#define FR_ACT_MAX (__FR_ACT_MAX - 1)
> +
> +#endif
Shouldn't all these (struct fib_rule_hdr included) actually be defined
in include/linux/rtnetlink.h?
Otherwise, looks good.
Regards,
Ville
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html