mfc
CFATTACH_DECL_NEW(mfc, sizeof(struct mfc_softc),
char pad6[1]; unsigned char mfc;
} mfc[256 / 5];
howmany(sizeof mfc, sizeof mfc[0]))
mfc[i].common =
mfc[i].addr =
mfc[i].common ? "common" :
"attr", mfc[i].addr));
if (!mfc[mfc_index].common)
mfc[mfc_index].addr *= 2;
mfc[mfc_index].common ?
mfc[mfc_index].addr, PCMCIA_CIS_SIZE,
if (!mfc[mfc_index].common)
tuple.mult = mfc[mfc_index].common ? 1 : 2;
expire_mfc(struct mfc *rt)
struct mfc *rt;
struct mfc *rt;
struct mfc *rt;
struct mfc *rt, *nrt;
ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt)
LIST_HEAD(mfchashhdr, mfc) *mfchashtbl;
static void update_mfc_params(struct mfc *, struct mfcctl2 *);
static void init_mfc_params(struct mfc *, struct mfcctl2 *);
static void expire_mfc(struct mfc *);
static int ip_mdq(struct mbuf *, struct ifnet *, struct mfc *);
struct mfc *mfc;
mfc = mfc_find(&req->bu_src, &req->bu_dst);
if (mfc == NULL) {
for (x = mfc->mfc_bw_meter; x != NULL; x = x->bm_mfc_next) {
x->bm_mfc = mfc;
x->bm_mfc_next = mfc->mfc_bw_meter;
mfc->mfc_bw_meter = x;
struct mfc *mfc;
mfc = mfc_find(&req->bu_src, &req->bu_dst);
if (mfc == NULL) {
list = mfc->mfc_bw_meter;
mfc->mfc_bw_meter = NULL;
for (prev = NULL, x = mfc->mfc_bw_meter; x != NULL;
struct mbuf *, struct mfc *);
struct mbuf *, struct mfc *);
struct mbuf *, struct mfc *);
struct mfc *rt)
struct mbuf *mb_copy, struct mfc *rt)
struct mbuf *mb_copy, struct mfc *rt)
static struct mfc *
struct mfc *rt;
struct mfc *rt;
struct mfc *rt, *nrt;
struct mfc *rt;
update_mfc_params(struct mfc *rt, struct mfcctl2 *mfccp)
init_mfc_params(struct mfc *rt, struct mfcctl2 *mfccp)
LIST_ENTRY(mfc) mfc_hash;
struct mfc *bm_mfc; /* the corresponding mfc */
struct mf6c *mfc, **nptr;
while ((mfc = *nptr) != NULL) {
rte = mfc->mf6c_stall;
mfc->mf6c_expire != 0 &&
--mfc->mf6c_expire == 0) {
&mfc->mf6c_origin.sin6_addr),
&mfc->mf6c_mcastgrp.sin6_addr));
*nptr = mfc->mf6c_next;
free(mfc, M_MRTABLE);
nptr = &mfc->mf6c_next;
struct mf6c *mfc;
for (mfc = mf6ctable[i]; mfc != NULL; mfc = mfc->mf6c_next) {
for (rte = mfc->mf6c_stall; rte != NULL; rte = rte->next) {
LIST_HEAD(, mfc) *mfchashtbl;
struct mfc *mfcp, mfc;
for (; mfcp != 0; mfcp = mfc.mfc_hash.le_next) {
kread((u_long)mfcp, (char *)&mfc, sizeof(mfc));
i, routename4(mfc.mfc_origin.s_addr, nflag));
routename4(mfc.mfc_mcastgrp.s_addr, nflag),
pktscale(mfc.mfc_pkt_cnt), mfc.mfc_parent);
if (mfc.mfc_ttls[vifi])
mfc.mfc_ttls[vifi]);
bwm = mfc.mfc_bw_meter;
struct mf6c mfc;
kread((u_long)mfcp, (char *)&mfc, sizeof(mfc));
routename6(&mfc.mf6c_origin, nflag));
routename6(&mfc.mf6c_mcastgrp, nflag));
printf(" %9llu", (unsigned long long)mfc.mf6c_pkt_cnt);
for (waitings = 0, rtep = mfc.mf6c_stall; rtep; ) {
if (mfc.mf6c_parent == MF6C_INCOMPLETE_PARENT)
printf(" %3d ", mfc.mf6c_parent);
if (IF_ISSET(mifi, &mfc.mf6c_ifset))
mfcp = mfc.mf6c_next;