diff options
| author | Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> | 2002-10-24 13:14:46 -0700 |
|---|---|---|
| committer | Hideaki Yoshifuji <yoshfuji@linux-ipv6.org> | 2002-10-24 13:14:46 -0700 |
| commit | 145c04ecd4447bc4edacc4995a611ea67595f449 (patch) | |
| tree | 92e33549346558a11c466fac8dfb673ddcd5f8cf | |
| parent | 3f5f6d15fdd6c0016f3e07a56e427a7b98617435 (diff) | |
[NET]: Fix rtnetlink metric type, should be u32.
| -rw-r--r-- | include/linux/rtnetlink.h | 26 | ||||
| -rw-r--r-- | net/core/rtnetlink.c | 4 |
2 files changed, 25 insertions, 5 deletions
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 3854002c7eec..57296f48dc02 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h @@ -198,10 +198,11 @@ enum rtattr_type_t RTA_MULTIPATH, RTA_PROTOINFO, RTA_FLOW, - RTA_CACHEINFO + RTA_CACHEINFO, + RTA_SESSION, }; -#define RTA_MAX RTA_CACHEINFO +#define RTA_MAX RTA_SESSION #define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg)))) #define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct rtmsg)) @@ -284,6 +285,25 @@ enum #define RTAX_MAX RTAX_REORDERING +struct rta_session +{ + __u8 proto; + + union { + struct { + __u16 sport; + __u16 dport; + } ports; + + struct { + __u8 type; + __u8 code; + __u16 ident; + } icmpt; + + __u32 spi; + } u; +}; /********************************************************* @@ -559,7 +579,7 @@ struct rtnetlink_link extern struct rtnetlink_link * rtnetlink_links[NPROTO]; extern int rtnetlink_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb); extern int rtnetlink_send(struct sk_buff *skb, u32 pid, u32 group, int echo); -extern int rtnetlink_put_metrics(struct sk_buff *skb, unsigned *metrics); +extern int rtnetlink_put_metrics(struct sk_buff *skb, u32 *metrics); extern void __rta_fill(struct sk_buff *skb, int attrtype, int attrlen, const void *data); diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index e6977e508797..fe96f39ce746 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -128,7 +128,7 @@ int rtnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, int echo) return err; } -int rtnetlink_put_metrics(struct sk_buff *skb, unsigned *metrics) +int rtnetlink_put_metrics(struct sk_buff *skb, u32 *metrics) { struct rtattr *mx = (struct rtattr*)skb->tail; int i; @@ -136,7 +136,7 @@ int rtnetlink_put_metrics(struct sk_buff *skb, unsigned *metrics) RTA_PUT(skb, RTA_METRICS, 0, NULL); for (i=0; i<RTAX_MAX; i++) { if (metrics[i]) - RTA_PUT(skb, i+1, sizeof(unsigned), metrics+i); + RTA_PUT(skb, i+1, sizeof(u32), metrics+i); } mx->rta_len = skb->tail - (u8*)mx; if (mx->rta_len == RTA_LENGTH(0)) |
