Lines Matching refs:ifa
73 struct mibifa *ifa; in create() local
92 if ((ifa = mib_create_ifa(upd->ifindex, upd->addr, upd->mask, bcast)) in create()
105 modify(struct update *upd, struct mibifa *ifa) in modify() argument
109 if ((ifp = mib_find_if(ifa->ifindex)) == NULL) in modify()
111 if ((upd->set & UPD_IFINDEX) && upd->ifindex != ifa->ifindex) in modify()
114 upd->rb_mask = ifa->inmask; in modify()
115 upd->rb_bcast = ifa->inbcast; in modify()
116 if (((upd->set & UPD_MASK) && upd->mask.s_addr != ifa->inmask.s_addr) || in modify()
119 ifa->inmask = upd->mask; in modify()
121 ifa->inbcast.s_addr = ifa->inaddr.s_addr in modify()
122 & ifa->inmask.s_addr; in modify()
124 ifa->inbcast.s_addr |= 0xffffffff in modify()
125 & ~ifa->inmask.s_addr; in modify()
127 if (mib_modify_ifa(ifa)) { in modify()
129 ifa->inmask = upd->rb_mask; in modify()
130 ifa->inbcast = upd->rb_bcast; in modify()
131 mib_unmodify_ifa(ifa); in modify()
146 struct mibifa *ifa) in destroy() argument
148 if (mib_destroy_ifa(ifa)) in destroy()
162 struct mibifa *ifa; in update_func() local
167 if ((ifa = mib_find_ifa(upd->addr)) == NULL) { in update_func()
176 return (destroy(ctx, upd, ifa)); in update_func()
179 return (modify(upd, ifa)); in update_func()
182 if ((ifa = mib_find_ifa(upd->addr)) == NULL) { in update_func()
188 mib_uncreate_ifa(ifa); in update_func()
192 mib_undestroy_ifa(ifa); in update_func()
196 ifa->inmask = upd->rb_mask; in update_func()
197 ifa->inbcast = upd->rb_bcast; in update_func()
198 mib_unmodify_ifa(ifa); in update_func()
205 (ifa = mib_find_ifa(upd->addr)) != NULL && in update_func()
206 (ifa->flags & MIBIFA_DESTROYED)) { in update_func()
207 TAILQ_REMOVE(&mibifa_list, ifa, link); in update_func()
208 free(ifa); in update_func()
224 struct mibifa *ifa; in op_ipaddr() local
231 ifa = NULL; in op_ipaddr()
236 if ((ifa = NEXT_OBJECT_OID(&mibifa_list, &value->var, sub)) == NULL) in op_ipaddr()
238 index_append(&value->var, sub, &ifa->index); in op_ipaddr()
242 if ((ifa = FIND_OBJECT_OID(&mibifa_list, &value->var, sub)) == NULL) in op_ipaddr()
249 ifa = FIND_OBJECT_OID(&mibifa_list, &value->var, sub); in op_ipaddr()
271 if (ifa != NULL) { in op_ipaddr()
272 if (ifa->ifindex != (u_int)value->v.integer && in op_ipaddr()
310 value->v.ipaddress[0] = ifa->index.subs[0]; in op_ipaddr()
311 value->v.ipaddress[1] = ifa->index.subs[1]; in op_ipaddr()
312 value->v.ipaddress[2] = ifa->index.subs[2]; in op_ipaddr()
313 value->v.ipaddress[3] = ifa->index.subs[3]; in op_ipaddr()
317 if (ifa->flags & MIBIFA_DESTROYED) in op_ipaddr()
320 value->v.integer = ifa->ifindex; in op_ipaddr()
324 value->v.ipaddress[0] = (ntohl(ifa->inmask.s_addr) >> 24) & 0xff; in op_ipaddr()
325 value->v.ipaddress[1] = (ntohl(ifa->inmask.s_addr) >> 16) & 0xff; in op_ipaddr()
326 value->v.ipaddress[2] = (ntohl(ifa->inmask.s_addr) >> 8) & 0xff; in op_ipaddr()
327 value->v.ipaddress[3] = (ntohl(ifa->inmask.s_addr) >> 0) & 0xff; in op_ipaddr()
331 value->v.integer = ntohl(ifa->inbcast.s_addr) & 1; in op_ipaddr()