On 02/24/09 09:56, Sebastien Roy wrote:
On Tue, 2009-02-24 at 09:31 -0500, James Carlson wrote:
# dladm connect-wifi -e ap7-3 ath2
# ifconfig ath2 dhcp
--> Timeout always, since no reponse from DHCP server
By sniffer tool, we can see, BSSID field of frame header is always old
one (DWL-2000AP), NOT ap7-3's.
This means mac_pdata_update() has no effect to flush IP's fastpath header.
Thoughs?
Sounds like a good bug to me.
Indeed, and this previously worked. By design, mac_pdata_update()
issues a MAC_NOTE_FASTPATH_FLUSH notification. The dld module's
str_notify() callback receives this notification and calls
str_notify_fastpath_flush(), which in turn issues a
DL_NOTE_FASTPATH_FLUSH DL_NOTIFY_IND DLPI message to interested client
streams, including IP streams. The ip module processes such DLPI
notifications and re-initializes its fast-path headers on these streams.
If this is no longer working this way, then something has perturbed this
code path.
I guess IP is not getting the DL_NOTE_FASTPATH_FLUSH notification.
In proto_notify_req() we mask of this flag even when the DLPI consumer
has shown interest in this notification.
/*
* DL_NOTIFY_REQ
*/
static void
proto_notify_req(dld_str_t *dsp, mblk_t *mp)
{
dl_notify_req_t *dlp = (dl_notify_req_t *)mp->b_rptr;
t_uscalar_t dl_err;
queue_t *q = dsp->ds_wq;
uint_t note =
DL_NOTE_PROMISC_ON_PHYS |
DL_NOTE_PROMISC_OFF_PHYS |
DL_NOTE_PHYS_ADDR |
DL_NOTE_LINK_UP |
DL_NOTE_LINK_DOWN |
DL_NOTE_CAPAB_RENEG |
DL_NOTE_SPEED; <--- (a) No sign of the Fastpath flush
......
......
/*
* Cache the notifications that are being enabled.
*/
dsp->ds_notifications = dlp->dl_notifications & note; <------ (b)
mask's that flag off.
......
......
}
I guess it's related to 6791246.
~Girish
.
-Seb
_______________________________________________
networking-discuss mailing list
[email protected]
_______________________________________________
networking-discuss mailing list
[email protected]