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