Re: [RFC 1/2] [IPV6] ADDRCONF: Preparation for configurable address selection policy with ifindex.

2007-10-30 Thread David Miller
From: YOSHIFUJI Hideaki / 吉藤英明 [EMAIL PROTECTED]
Date: Tue, 30 Oct 2007 14:52:37 +0900 (JST)

 Signed-off-by: YOSHIFUJI Hideaki [EMAIL PROTECTED]

What is the substance of this change?  Please add a description of
this to the changelog entry as currently the description is far too
brief and vague.

Even saying simply that the change allows the interface index
to be passed into the address selection routines would be
a great improvement.

Thank you.
-
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


Re: [RFC 1/2] [IPV6] ADDRCONF: Preparation for configurable address selection policy with ifindex.

2007-10-30 Thread Krishna Kumar2
Hi Yoshifuji,

YOSHIFUJI Hideaki wrote on 10/30/2007 11:22:37 AM:

 -static inline int ipv6_saddr_label(const struct in6_addr *addr, int
type)
 +static inline int ipv6_addr_label(const struct in6_addr *addr, int type,
 +int ifindex)

This function doesn't use this new argument passed to it. Did you perhaps
intend to use it to
initializing daddr_index?

 +   int daddr_ifindex = daddr_dev ? daddr_dev-ifindex : 0;

Thanks,

- KK

-
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


[RFC 1/2] [IPV6] ADDRCONF: Preparation for configurable address selection policy with ifindex.

2007-10-29 Thread YOSHIFUJI Hideaki / 吉藤英明
Signed-off-by: YOSHIFUJI Hideaki [EMAIL PROTECTED]
---
 net/ipv6/addrconf.c |   14 ++
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 348bd8d..8b408b7 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -877,7 +877,8 @@ static inline int ipv6_saddr_preferred(int type)
 }
 
 /* static matching label */
-static inline int ipv6_saddr_label(const struct in6_addr *addr, int type)
+static inline int ipv6_addr_label(const struct in6_addr *addr, int type,
+ int ifindex)
 {
  /*
   *prefix (longest match)  label
@@ -912,7 +913,8 @@ int ipv6_dev_get_saddr(struct net_device *daddr_dev,
struct inet6_ifaddr *ifa_result = NULL;
int daddr_type = __ipv6_addr_type(daddr);
int daddr_scope = __ipv6_addr_src_scope(daddr_type);
-   u32 daddr_label = ipv6_saddr_label(daddr, daddr_type);
+   int daddr_ifindex = daddr_dev ? daddr_dev-ifindex : 0;
+   u32 daddr_label = ipv6_addr_label(daddr, daddr_type, daddr_ifindex);
struct net_device *dev;
 
memset(hiscore, 0, sizeof(hiscore));
@@ -1085,11 +1087,15 @@ int ipv6_dev_get_saddr(struct net_device *daddr_dev,
 
/* Rule 6: Prefer matching label */
if (hiscore.rule  6) {
-   if (ipv6_saddr_label(ifa_result-addr, 
hiscore.addr_type) == daddr_label)
+   if (ipv6_addr_label(ifa_result-addr,
+   hiscore.addr_type,
+   
ifa_result-idev-dev-ifindex) == daddr_label)
hiscore.attrs |= IPV6_SADDR_SCORE_LABEL;
hiscore.rule++;
}
-   if (ipv6_saddr_label(ifa-addr, score.addr_type) == 
daddr_label) {
+   if (ipv6_addr_label(ifa-addr,
+   score.addr_type,
+   ifa-idev-dev-ifindex) == 
daddr_label) {
score.attrs |= IPV6_SADDR_SCORE_LABEL;
if (!(hiscore.attrs  IPV6_SADDR_SCORE_LABEL)) {
score.rule = 6;
-- 
1.4.4.4

-
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