Lines Matching refs:ifp
54 duid_make(unsigned char *d, const struct interface *ifp, uint16_t type) in duid_make() argument
65 u16 = htons(ifp->family); in duid_make()
77 memcpy(p, ifp->hwaddr, ifp->hwlen); in duid_make()
78 p += ifp->hwlen; in duid_make()
84 duid_get(unsigned char *d, const struct interface *ifp) in duid_get() argument
113 logger(ifp->ctx, LOG_ERR, in duid_get()
118 if (ifp->family == ARPHRD_NETROM) { in duid_get()
119 logger(ifp->ctx, LOG_WARNING, in duid_get()
120 "%s: is a NET/ROM psuedo interface", ifp->name); in duid_get()
121 TAILQ_FOREACH(ifp2, ifp->ctx->ifaces, next) { in duid_get()
126 ifp = ifp2; in duid_get()
127 logger(ifp->ctx, LOG_WARNING, in duid_get()
129 ifp->name); in duid_get()
131 logger(ifp->ctx, LOG_WARNING, in duid_get()
133 return duid_make(d, ifp, DUID_LL); in duid_get()
138 logger(ifp->ctx, LOG_ERR, "error writing DUID: %s: %m", DUID); in duid_get()
139 return duid_make(d, ifp, DUID_LL); in duid_get()
141 len = duid_make(d, ifp, DUID_LLT); in duid_get()
146 logger(ifp->ctx, LOG_ERR, "error writing DUID: %s: %m", DUID); in duid_get()
148 return duid_make(d, ifp, DUID_LL); in duid_get()
153 size_t duid_init(const struct interface *ifp) in duid_init() argument
156 if (ifp->ctx->duid == NULL) { in duid_init()
157 ifp->ctx->duid = malloc(DUID_LEN); in duid_init()
158 if (ifp->ctx->duid == NULL) { in duid_init()
159 logger(ifp->ctx, LOG_ERR, "%s: %m", __func__); in duid_init()
162 ifp->ctx->duid_len = duid_get(ifp->ctx->duid, ifp); in duid_init()
164 return ifp->ctx->duid_len; in duid_init()