Hi Neil > @@ -1027,15 +1029,17 @@ int ipv6_dev_get_saddr(struct net_device *daddr_dev, > } > } > > - /* Rule 3: Avoid deprecated address */ > + /* Rule 3: Avoid deprecated and optimistic address */ > if (hiscore.rule < 3) { > if (ipv6_saddr_preferred(hiscore.addr_type) || > - !(ifa_result->flags & IFA_F_DEPRECATED)) > + ((!(ifa_result->flags & IFA_F_DEPRECATED)) > && > + (!(ifa_result->flags & IFA_F_OPTIMISTIC))))
One style comment. Looks like some extra parenthesis that I don't thing are needed. I think you can say + (!(ifa_result->flags & IFA_F_DEPRECATED)) && + !(ifa_result->flags & IFA_F_OPTIMISTIC)))) > hiscore.attrs |= > IPV6_SADDR_SCORE_PREFERRED; > hiscore.rule++; > } > if (ipv6_saddr_preferred(score.addr_type) || > - !(ifa->flags & IFA_F_DEPRECATED)) { > + ((!(ifa->flags & IFA_F_DEPRECATED)) && > + (!(ifa_result->flags & IFA_F_OPTIMISTIC)))) { same here. > score.attrs |= IPV6_SADDR_SCORE_PREFERRED; > if (!(hiscore.attrs & > IPV6_SADDR_SCORE_PREFERRED)) { > score.rule = 3; -vlad - 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