diff mbox

ipv6: Add IFA_F_DADFAILED flag

Message ID 4AA9500E.8020309@hp.com
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

Brian Haley Sept. 10, 2009, 7:14 p.m. UTC
Hi Jens,

Jens Rosenboom wrote:
>> Ok, how does this look?  I changed it to set the tentative flag as it did
>> before, plus clear the dad_failed flag if the device got restarted,
>> triggering DAD to happen again for any tentative address, that was an
>> oversight on my part.
> 
> Looks fine to me so far, can you also send the patch for userspace? That
> would making testing this a bit easier. ;-)

Iproute2 patch below, I'll re-post both once you have a chance to test.

>> I'd still like to know if using this last ifa_flag is going to be an issue,
>> I actually finished a similar patch that uses a new IFA_ADDRFLAGS structure
>> to pass in/out this additional info.
> 
> IMHO you should stick to this version, if any future feature needs
> another bit, it may happen also to need two of them and so will need a
> new structure then anyway, but why not keep it simple for now?

I'll leave it for now, I might just post as an RFC to get some feedback on it.

Thanks,

-Brian


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

stephen hemminger Dec. 2, 2009, 12:01 a.m. UTC | #1
On Thu, 10 Sep 2009 15:14:22 -0400
Brian Haley <brian.haley@hp.com> wrote:

> Hi Jens,
> 
> Jens Rosenboom wrote:
> >> Ok, how does this look?  I changed it to set the tentative flag as it did
> >> before, plus clear the dad_failed flag if the device got restarted,
> >> triggering DAD to happen again for any tentative address, that was an
> >> oversight on my part.
> > 
> > Looks fine to me so far, can you also send the patch for userspace? That
> > would making testing this a bit easier. ;-)
> 
> Iproute2 patch below, I'll re-post both once you have a chance to test.
> 
> >> I'd still like to know if using this last ifa_flag is going to be an issue,
> >> I actually finished a similar patch that uses a new IFA_ADDRFLAGS structure
> >> to pass in/out this additional info.
> > 
> > IMHO you should stick to this version, if any future feature needs
> > another bit, it may happen also to need two of them and so will need a
> > new structure then anyway, but why not keep it simple for now?
> 
> I'll leave it for now, I might just post as an RFC to get some feedback on it.
> 
> Thanks,
> 
> -Brian
> 
> 
> diff --git a/include/linux/if_addr.h b/include/linux/if_addr.h
> index a60c821..fd97404 100644
> --- a/include/linux/if_addr.h
> +++ b/include/linux/if_addr.h
> @@ -41,6 +41,7 @@ enum
>  
>  #define	IFA_F_NODAD		0x02
>  #define IFA_F_OPTIMISTIC	0x04
> +#define IFA_F_DADFAILED		0x08
>  #define	IFA_F_HOMEADDRESS	0x10
>  #define IFA_F_DEPRECATED	0x20
>  #define IFA_F_TENTATIVE		0x40
> diff --git a/ip/ipaddress.c b/ip/ipaddress.c
> index 267ecb3..97c7a8b 100644
> --- a/ip/ipaddress.c
> +++ b/ip/ipaddress.c
> @@ -508,6 +508,10 @@ int print_addrinfo(const struct sockaddr_nl *who, struct nlmsghdr *n,
>  		fprintf(fp, "dynamic ");
>  	} else
>  		ifa->ifa_flags &= ~IFA_F_PERMANENT;
> +	if (ifa->ifa_flags&IFA_F_DADFAILED) {
> +		ifa->ifa_flags &= ~IFA_F_DADFAILED;
> +		fprintf(fp, "dadfailed ");
> +	}
>  	if (ifa->ifa_flags)
>  		fprintf(fp, "flags %02x ", ifa->ifa_flags);
>  	if (rta_tb[IFA_LABEL])

Applied to iproute (for 2.6.32) with original message changelog
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/if_addr.h b/include/linux/if_addr.h
index a60c821..fd97404 100644
--- a/include/linux/if_addr.h
+++ b/include/linux/if_addr.h
@@ -41,6 +41,7 @@  enum
 
 #define	IFA_F_NODAD		0x02
 #define IFA_F_OPTIMISTIC	0x04
+#define IFA_F_DADFAILED		0x08
 #define	IFA_F_HOMEADDRESS	0x10
 #define IFA_F_DEPRECATED	0x20
 #define IFA_F_TENTATIVE		0x40
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 267ecb3..97c7a8b 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -508,6 +508,10 @@  int print_addrinfo(const struct sockaddr_nl *who, struct nlmsghdr *n,
 		fprintf(fp, "dynamic ");
 	} else
 		ifa->ifa_flags &= ~IFA_F_PERMANENT;
+	if (ifa->ifa_flags&IFA_F_DADFAILED) {
+		ifa->ifa_flags &= ~IFA_F_DADFAILED;
+		fprintf(fp, "dadfailed ");
+	}
 	if (ifa->ifa_flags)
 		fprintf(fp, "flags %02x ", ifa->ifa_flags);
 	if (rta_tb[IFA_LABEL])