diff options
Diffstat (limited to 'include/net/dn_fib.h')
| -rw-r--r-- | include/net/dn_fib.h | 79 | 
1 files changed, 30 insertions, 49 deletions
diff --git a/include/net/dn_fib.h b/include/net/dn_fib.h index bbcde3238e5..f2ca135ddcc 100644 --- a/include/net/dn_fib.h +++ b/include/net/dn_fib.h @@ -1,24 +1,9 @@  #ifndef _NET_DN_FIB_H  #define _NET_DN_FIB_H -/* WARNING: The ordering of these elements must match ordering - *          of RTA_* rtnetlink attribute numbers. - */ -struct dn_kern_rta { -        void            *rta_dst; -        void            *rta_src; -        int             *rta_iif; -        int             *rta_oif; -        void            *rta_gw; -        u32             *rta_priority; -        void            *rta_prefsrc; -        struct rtattr   *rta_mx; -        struct rtattr   *rta_mp; -        unsigned char   *rta_protoinfo; -        u32             *rta_flow; -        struct rta_cacheinfo *rta_ci; -	struct rta_session *rta_sess; -}; +#include <linux/netlink.h> + +extern const struct nla_policy rtm_dn_policy[];  struct dn_fib_res {  	struct fib_rule *r; @@ -31,7 +16,7 @@ struct dn_fib_res {  struct dn_fib_nh {  	struct net_device	*nh_dev; -	unsigned		nh_flags; +	unsigned int		nh_flags;  	unsigned char		nh_scope;  	int			nh_weight;  	int			nh_power; @@ -45,7 +30,7 @@ struct dn_fib_info {  	int 			fib_treeref;  	atomic_t		fib_clntref;  	int			fib_dead; -	unsigned		fib_flags; +	unsigned int		fib_flags;  	int			fib_protocol;  	__le16			fib_prefsrc;  	__u32			fib_priority; @@ -93,12 +78,12 @@ struct dn_fib_table {  	u32 n;  	int (*insert)(struct dn_fib_table *t, struct rtmsg *r,  -			struct dn_kern_rta *rta, struct nlmsghdr *n,  +			struct nlattr *attrs[], struct nlmsghdr *n,  			struct netlink_skb_parms *req);  	int (*delete)(struct dn_fib_table *t, struct rtmsg *r, -			struct dn_kern_rta *rta, struct nlmsghdr *n, +			struct nlattr *attrs[], struct nlmsghdr *n,  			struct netlink_skb_parms *req); -	int (*lookup)(struct dn_fib_table *t, const struct flowi *fl, +	int (*lookup)(struct dn_fib_table *t, const struct flowidn *fld,  			struct dn_fib_res *res);  	int (*flush)(struct dn_fib_table *t);  	int (*dump)(struct dn_fib_table *t, struct sk_buff *skb, struct netlink_callback *cb); @@ -110,42 +95,38 @@ struct dn_fib_table {  /*   * dn_fib.c   */ -extern void dn_fib_init(void); -extern void dn_fib_cleanup(void); - -extern int dn_fib_ioctl(struct socket *sock, unsigned int cmd,  -			unsigned long arg); -extern struct dn_fib_info *dn_fib_create_info(const struct rtmsg *r,  -				struct dn_kern_rta *rta,  -				const struct nlmsghdr *nlh, int *errp); -extern int dn_fib_semantic_match(int type, struct dn_fib_info *fi,  -			const struct flowi *fl, -			struct dn_fib_res *res); -extern void dn_fib_release_info(struct dn_fib_info *fi); -extern __le16 dn_fib_get_attr16(struct rtattr *attr, int attrlen, int type); -extern void dn_fib_flush(void); -extern void dn_fib_select_multipath(const struct flowi *fl, -					struct dn_fib_res *res); +void dn_fib_init(void); +void dn_fib_cleanup(void); + +int dn_fib_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg); +struct dn_fib_info *dn_fib_create_info(const struct rtmsg *r, +				       struct nlattr *attrs[], +				       const struct nlmsghdr *nlh, int *errp); +int dn_fib_semantic_match(int type, struct dn_fib_info *fi, +			  const struct flowidn *fld, struct dn_fib_res *res); +void dn_fib_release_info(struct dn_fib_info *fi); +void dn_fib_flush(void); +void dn_fib_select_multipath(const struct flowidn *fld, struct dn_fib_res *res);  /*   * dn_tables.c   */ -extern struct dn_fib_table *dn_fib_get_table(u32 n, int creat); -extern struct dn_fib_table *dn_fib_empty_table(void); -extern void dn_fib_table_init(void); -extern void dn_fib_table_cleanup(void); +struct dn_fib_table *dn_fib_get_table(u32 n, int creat); +struct dn_fib_table *dn_fib_empty_table(void); +void dn_fib_table_init(void); +void dn_fib_table_cleanup(void);  /*   * dn_rules.c   */ -extern void dn_fib_rules_init(void); -extern void dn_fib_rules_cleanup(void); -extern unsigned dnet_addr_type(__le16 addr); -extern int dn_fib_lookup(struct flowi *fl, struct dn_fib_res *res); +void dn_fib_rules_init(void); +void dn_fib_rules_cleanup(void); +unsigned int dnet_addr_type(__le16 addr); +int dn_fib_lookup(struct flowidn *fld, struct dn_fib_res *res); -extern int dn_fib_dump(struct sk_buff *skb, struct netlink_callback *cb); +int dn_fib_dump(struct sk_buff *skb, struct netlink_callback *cb); -extern void dn_fib_free_info(struct dn_fib_info *fi); +void dn_fib_free_info(struct dn_fib_info *fi);  static inline void dn_fib_info_put(struct dn_fib_info *fi)  {  | 
