diff options
author | Pierre Ynard <linkfanel@yahoo.fr> | 2007-11-12 20:58:35 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-11-12 20:58:35 -0500 |
commit | dbb2ed24851a290616d66212dc75373fd863d636 (patch) | |
tree | 6e4d001604fb47980c32d665039442aeddbc844f | |
parent | 325d22df7b19e0116aff3391d3a03f73d0634ded (diff) |
[IPV6]: Add ifindex field to ND user option messages.
Userland neighbor discovery options are typically heavily involved with
the interface on which thay are received: add a missing ifindex field to
the original struct. Thanks to Rémi Denis-Courmont.
Signed-off-by: Pierre Ynard <linkfanel@yahoo.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/linux/rtnetlink.h | 2 | ||||
-rw-r--r-- | net/ipv6/ndisc.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 5bf618241ab9..4e81836191df 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
@@ -491,9 +491,11 @@ struct nduseroptmsg | |||
491 | unsigned char nduseropt_family; | 491 | unsigned char nduseropt_family; |
492 | unsigned char nduseropt_pad1; | 492 | unsigned char nduseropt_pad1; |
493 | unsigned short nduseropt_opts_len; /* Total length of options */ | 493 | unsigned short nduseropt_opts_len; /* Total length of options */ |
494 | int nduseropt_ifindex; | ||
494 | __u8 nduseropt_icmp_type; | 495 | __u8 nduseropt_icmp_type; |
495 | __u8 nduseropt_icmp_code; | 496 | __u8 nduseropt_icmp_code; |
496 | unsigned short nduseropt_pad2; | 497 | unsigned short nduseropt_pad2; |
498 | unsigned int nduseropt_pad3; | ||
497 | /* Followed by one or more ND options */ | 499 | /* Followed by one or more ND options */ |
498 | }; | 500 | }; |
499 | 501 | ||
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 36f7dbfb6dbb..67997a74ddce 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c | |||
@@ -1037,6 +1037,7 @@ static void ndisc_ra_useropt(struct sk_buff *ra, struct nd_opt_hdr *opt) | |||
1037 | 1037 | ||
1038 | ndmsg = nlmsg_data(nlh); | 1038 | ndmsg = nlmsg_data(nlh); |
1039 | ndmsg->nduseropt_family = AF_INET6; | 1039 | ndmsg->nduseropt_family = AF_INET6; |
1040 | ndmsg->nduseropt_ifindex = ra->dev->ifindex; | ||
1040 | ndmsg->nduseropt_icmp_type = icmp6h->icmp6_type; | 1041 | ndmsg->nduseropt_icmp_type = icmp6h->icmp6_type; |
1041 | ndmsg->nduseropt_icmp_code = icmp6h->icmp6_code; | 1042 | ndmsg->nduseropt_icmp_code = icmp6h->icmp6_code; |
1042 | ndmsg->nduseropt_opts_len = opt->nd_opt_len << 3; | 1043 | ndmsg->nduseropt_opts_len = opt->nd_opt_len << 3; |