Maybe not very important, but "id" sounds a tad too generic to me, and
it looks like we're really dealing with an rdomain here, so here's a diff.
Thoughts? ok?
Index: net/if_enc.c
===================================================================
RCS file: /cvs/src/sys/net/if_enc.c,v
retrieving revision 1.72
diff -u -p -r1.72 if_enc.c
--- net/if_enc.c 8 Jul 2018 13:04:04 -0000 1.72
+++ net/if_enc.c 8 Jul 2018 13:20:13 -0000
@@ -36,7 +36,7 @@
#endif
struct ifnet **enc_ifps; /* rdomain-mapped enc ifs */
-u_int enc_max_id;
+u_int enc_max_rdomain;
struct ifnet **enc_allifps; /* unit-mapped enc ifs */
u_int enc_max_unit;
#define ENC_MAX_UNITS 4096 /* XXX n per rdomain */
@@ -210,7 +210,7 @@ enc_ioctl(struct ifnet *ifp, u_long cmd,
}
struct ifnet *
-enc_getif(u_int id, u_int unit)
+enc_getif(u_int rdomain, u_int unit)
{
struct ifnet *ifp;
@@ -221,7 +221,7 @@ enc_getif(u_int id, u_int unit)
if (unit > enc_max_unit)
return (NULL);
ifp = enc_allifps[unit];
- if (ifp == NULL || ifp->if_rdomain != id)
+ if (ifp == NULL || ifp->if_rdomain != rdomain)
return (NULL);
return (ifp);
}
@@ -229,20 +229,20 @@ enc_getif(u_int id, u_int unit)
/* Otherwise return the default enc interface for this rdomain */
if (enc_ifps == NULL)
return (NULL);
- else if (id > RT_TABLEID_MAX)
+ else if (rdomain > RT_TABLEID_MAX)
return (NULL);
- else if (id > enc_max_id)
+ else if (rdomain > enc_max_rdomain)
return (NULL);
- return (enc_ifps[id]);
+ return (enc_ifps[rdomain]);
}
struct ifaddr *
-enc_getifa(u_int id, u_int unit)
+enc_getifa(u_int rdomain, u_int unit)
{
struct ifnet *ifp;
struct enc_softc *sc;
- ifp = enc_getif(id, unit);
+ ifp = enc_getif(rdomain, unit);
if (ifp == NULL)
return (NULL);
@@ -250,7 +250,7 @@ enc_getifa(u_int id, u_int unit)
return (&sc->sc_ifa);
}
int
-enc_setif(struct ifnet *ifp, u_int id)
+enc_setif(struct ifnet *ifp, u_int rdomain)
{
struct ifnet **new;
size_t newlen;
@@ -265,28 +265,28 @@ enc_setif(struct ifnet *ifp, u_int id)
* for this rdomain, so only the first enc interface that
* was added for this rdomain becomes the default.
*/
- if (enc_getif(id, 0) != NULL)
+ if (enc_getif(rdomain, 0) != NULL)
return (0);
- if (id > RT_TABLEID_MAX)
+ if (rdomain > RT_TABLEID_MAX)
return (EINVAL);
- if (enc_ifps == NULL || id > enc_max_id) {
- if ((new = mallocarray(id + 1, sizeof(struct ifnet *),
+ if (enc_ifps == NULL || rdomain > enc_max_rdomain) {
+ if ((new = mallocarray(rdomain + 1, sizeof(struct ifnet *),
M_DEVBUF, M_NOWAIT|M_ZERO)) == NULL)
return (ENOBUFS);
- newlen = sizeof(struct ifnet *) * (id + 1);
+ newlen = sizeof(struct ifnet *) * (rdomain + 1);
if (enc_ifps != NULL) {
memcpy(new, enc_ifps,
- sizeof(struct ifnet *) * (enc_max_id + 1));
+ sizeof(struct ifnet *) * (enc_max_rdomain + 1));
free(enc_ifps, M_DEVBUF, 0);
}
enc_ifps = new;
- enc_max_id = id;
+ enc_max_rdomain = rdomain;
}
- enc_ifps[id] = ifp;
+ enc_ifps[rdomain] = ifp;
/* Indicate that this interface is the rdomain default */
ifp->if_link_state = LINK_STATE_UP;
@@ -297,14 +297,14 @@ enc_setif(struct ifnet *ifp, u_int id)
void
enc_unsetif(struct ifnet *ifp)
{
- u_int id = ifp->if_rdomain, i;
+ u_int rdomain = ifp->if_rdomain, i;
struct ifnet *oifp, *nifp;
- if ((oifp = enc_getif(id, 0)) == NULL || oifp != ifp)
+ if ((oifp = enc_getif(rdomain, 0)) == NULL || oifp != ifp)
return;
/* Clear slot for this rdomain */
- enc_ifps[id] = NULL;
+ enc_ifps[rdomain] = NULL;
ifp->if_link_state = LINK_STATE_UNKNOWN;
/*
@@ -314,10 +314,10 @@ enc_unsetif(struct ifnet *ifp)
for (i = 0; i < (enc_max_unit + 1); i++) {
nifp = enc_allifps[i];
- if (nifp == NULL || nifp == ifp || nifp->if_rdomain != id)
+ if (nifp == NULL || nifp == ifp || nifp->if_rdomain != rdomain)
continue;
- enc_ifps[id] = nifp;
+ enc_ifps[rdomain] = nifp;
nifp->if_link_state = LINK_STATE_UP;
break;
}
--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE