> I see two non-hacky possibilities: > > 1. We change IFF_IPMP_CANTCHANGE to work like IFF_CANTCHANGE. > That is, the kernel silently strips off any flags in > IFF_IPMP_CANTCHANGE and processes the rest of the request. > This will fix the problem, but is a bit confusing since > e.g. a request to set IFF_STANDBY on the IPMP interface > will appear to succeed but in fact do nothing. > > 2. We split IFF_IPMP_CANTCHANGE into IFF_IPMP_CANTCHANGE and > IFF_IPMP_INVALID. The first set (IFF_RUNNING and IFF_FAILED) > act like IFF_CANTCHANGE, in that they are silently ignored. > The second set (all the other flags, which can *never* be > set on an IPMP interface) explicitly return EINVAL.
I've gone ahead and implemented (2). If anyone feels strongly otherwise, please let me know. I'll send out a code review request to clearview-dev shortly. -- meem
