James Carlson wrote:
> Cathy Zhou wrote:
>   
>>> This seems to describe IFF_NOACCEPT as a per-ipif flag.  Is that the
>>> right granularity?  It seems odd to me that we could potentially
>>> configure the system to have some addresses that respond and some that
>>> do not.  The point of "no accept" mode is to behave as a real VRRP
>>> system.  If you want that, I don't think you'd want it just some of
>>> the time, would you?
>>>       
>> You are right. I can add a per-ill flag. But since I would also like
>> this flag to be observable by the administrator, I will keep the
>> IPIF_NOACCEPT flag so that ifconfig bge0:1 will be able to show this
>> address is set to be "no_accept".
>>     
>
> I don't understand.
>
> The IFF_* flag space is subdivided into flags on ipifs (IPIF_*), flags
> on ills (ILLF_*), and flags on phyints (PHYINT_*).  Those are all OR'd
> together when delivered to user space.
>
> Thus, at least for observability, it does not matter where you put the flag.
>   
Sorry that I wasn't clear. I meant to keep IFF_NOACCEPT and change its 
definition to be:

#define   ILLF_NOACCEPT   IFF_NOACCEPT
> Yes.  My argument, though, is that it doesn't actually matter if the
> address is marked "UP" but (for reasons outside the application's
> control) is not currently usable on the wire.  At most, lack of network
> connection is a reason to avoid that address when doing source address
> selection -- but, then, you almost certainly should be avoiding these
> VRRP-controlled addresses when doing source address selection for
> outbound connections anyway.
>   
Sorry, why cannot application use the virtual IP addresses as the source 
IP address, if the router is currently master?
>> I looked but didn't see things similar to it. BSD does provide a
>> IF_ANNOUNCE message to indicate the plumbing/unplumbing of the interface
>> but that cannot satisfy my needs.
>>     
> It'd probably help to describe that message and why it doesn't provide
> the information needed.  (In fact, that message is exactly what I'd
> expected was needed ...)
>   
As far as I know, the IFF_ANNOUCE only indicate the plumbing/unplumbing 
of the interface, not the address (the logical interface). That is why 
we cannot use it for our purpose.
>   
>>>>       - priv_net_rawaccess
>>>>         
>> To prevent the data-link from being deleted or renamed. Note that we
>> don't require the underlying interface and VNIC to be plumbed when the
>> router is enabled. Instead, the PF_ROUTE socket will track all the IP
>> addresses configured over the underlying interface and VNIC and
>> determine the primary IP address and virtual IP addresses.
>>     
>
> Why do you care whether the underlying link is deleted or renamed?
>
> How does that work with DR?
>   
When the VRRP router is first enabled, we check which VNIC is the 
associated VNIC and make sure it is created (otherwise, enable-router 
would fail). Then we listen to the PF_ROUTE messages to track all the IP 
addresses over this VNIC based on its interface name. If the VNICs is 
deleted or renamed in between, that would be a problem.

Thanks for remind me of DR. I believe adding a router_rcm plugin is 
possible.

Thanks
- Cathy


Reply via email to