PERFORCE change 128392 for review
Kip Macy
kmacy at FreeBSD.org
Tue Oct 30 22:42:49 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=128392
Change 128392 by kmacy at kmacy:storage:toestack on 2007/10/31 05:42:44
resolve the host interface MAC address not the non-existent gateway
Affected files ...
.. //depot/projects/toestack/sys/dev/cxgb/cxgb_l2t.c#9 edit
Differences ...
==== //depot/projects/toestack/sys/dev/cxgb/cxgb_l2t.c#9 (text+ko) ====
@@ -179,7 +179,7 @@
again:
switch (e->state) {
case L2T_STATE_STALE: /* entry is stale, kick off revalidation */
- arpresolve(rt->rt_ifp, rt, NULL, rt->rt_gateway, RT_ENADDR(rt));
+ arpresolve(rt->rt_ifp, rt, NULL, rt_key(rt), RT_ENADDR(rt));
mtx_lock(&e->lock);
if (e->state == L2T_STATE_STALE)
e->state = L2T_STATE_VALID;
@@ -205,7 +205,7 @@
* entries when there's no memory.
*/
printf("doing arpresolve\n");
- if (arpresolve(rt->rt_ifp, rt, NULL, rt->rt_gateway, RT_ENADDR(rt)) == 0) {
+ if (arpresolve(rt->rt_ifp, rt, NULL, rt_key(rt), RT_ENADDR(rt)) == 0) {
if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL)
return (ENOMEM);
@@ -235,7 +235,7 @@
again:
switch (e->state) {
case L2T_STATE_STALE: /* entry is stale, kick off revalidation */
- arpresolve(rt->rt_ifp, rt, m0, rt->rt_gateway, RT_ENADDR(rt));
+ arpresolve(rt->rt_ifp, rt, m0, rt_key(rt), RT_ENADDR(rt));
mtx_lock(&e->lock);
if (e->state == L2T_STATE_STALE) {
e->state = L2T_STATE_VALID;
@@ -262,7 +262,7 @@
* A better way would be to use a work request to retry L2T
* entries when there's no memory.
*/
- arpresolve(rt->rt_ifp, rt, m0, rt->rt_gateway, RT_ENADDR(rt));
+ arpresolve(rt->rt_ifp, rt, m0, rt_key(rt), RT_ENADDR(rt));
}
return;
@@ -302,6 +302,7 @@
}
e->state = L2T_STATE_UNUSED;
}
+
return e;
}
@@ -392,6 +393,8 @@
e->ifindex = ifidx;
e->smt_idx = smt_idx;
atomic_store_rel_int(&e->refcnt, 1);
+ e->neigh = NULL;
+
neigh_replace(e, neigh);
#ifdef notyet
/*
More information about the p4-projects
mailing list