On 8/2/2011 2:38 PM, Vasu Dev wrote:
On Sun, 2011-07-31 at 00:55 -0700, Bhanu Prakash Gollapudi wrote:
Would happen only link up event was missed by fcoe stack but not by
I meant "only *if* link up" here.
fcoemon, but that is not possible as stack would get thru notifier.
You're right, but there lies the problem. There is a race between the
stack and the fcoemon. The stack gets through the notifier before the
user space can get the link up and start VLAN discovery. Because of
this
Discovery Solicitation goes ahead of VLAN discovery. In the trace it
looks like we do discovery solicitation on the VLAN id (stale one)
even
before doing the VLAN discovery.
This should not be any issue here, the attempt to login after
solicitation should fail in the stale vlan. The fcoemon would discover
the new vlan and it should create new interface on newly discovered
vlan.
From the protocol stand point, I think it is not right to send a
discovery solicitation and then a VLAN discovery. It may be the same
VLAN id, but still solicitation should be sent after the VLAN discovery.
I do see need to free lport resources on the stale vlan in this case,
may be we can do that once dev loss timeout fired and after that lport
doesn't have any more any rport attached. The scsi netlink event can be
used on removing last rport to trigger destroy from the fcoemon so that
fcoemon can also cleanup its associated data structs for stale vlan or
destroy the interface in the kernel stack and then inform the fcoemon
to do its cleanup thru netlink event, later would be better as stack
won't depend on user space to destory i/f on stale vlan.
If we want to do the discovery
solicitation after VLAN discovery, we need to rely only on the
fcoemon
to do vlan discovery followed by the interface enable.
May be we want that in case of any issue/s due to solicitation before
vlan discovery. In this case we could have fcoe enable w/o disable as
you described before but that should not cause any issue as I described
above that fcoe stack would handle link up event for sure and would
bring lport/stack up again, are you running into any issue because of
this ?
Problem with stack handling link up is, first it sends discovery
solicitation and then vlan discovery happens. After the vlan discovery,
we do not send any solicitation and wait for the incoming advertisement
(which can take up to adv timeout value) to send it. The reason is,
initially solicitation is only sent in FIP_ST_LINK_WAIT state. Enable
at this point will not send a solicitation.
Thanks
Vasu
_______________________________________________
devel mailing list
[email protected]
https://lists.open-fcoe.org/mailman/listinfo/devel