Lines Matching defs:iph

105 	iphtable_t *iph, *oiph;
109 KMALLOC(iph, iphtable_t *);
110 if (iph == NULL) {
115 err = COPYIN(op->iplo_struct, iph, sizeof(*iph));
117 KFREE(iph);
122 if (iph->iph_unit != unit) {
123 KFREE(iph);
129 KFREE(iph);
147 (void)strncpy(iph->iph_name, name, sizeof(iph->iph_name));
148 err = COPYOUT(iph, op->iplo_struct, sizeof(*iph));
150 KFREE(iph);
153 iph->iph_type |= IPHASH_ANON;
156 KMALLOCS(iph->iph_table, iphtent_t **,
157 iph->iph_size * sizeof(*iph->iph_table));
158 if (iph->iph_table == NULL) {
159 KFREE(iph);
164 bzero((char *)iph->iph_table, iph->iph_size * sizeof(*iph->iph_table));
165 iph->iph_masks[0] = 0;
166 iph->iph_masks[1] = 0;
167 iph->iph_masks[2] = 0;
168 iph->iph_masks[3] = 0;
169 iph->iph_list = NULL;
171 iph->iph_ref = 1;
172 iph->iph_next = ifs->ifs_ipf_htables[unit];
173 iph->iph_pnext = &ifs->ifs_ipf_htables[unit];
175 ifs->ifs_ipf_htables[unit]->iph_pnext = &iph->iph_next;
176 ifs->ifs_ipf_htables[unit] = iph;
190 iphtable_t *iph;
193 iph = fr_findhtable(op->iplo_unit, op->iplo_name, ifs);
194 if (iph == NULL)
197 if (iph->iph_unit != op->iplo_unit) {
201 if (iph->iph_ref != 1) {
205 fr_delhtable(iph, ifs);
211 void fr_delhtable(iph, ifs)
212 iphtable_t *iph;
218 for (i = 0; i < iph->iph_size; i++)
219 while ((ipe = iph->iph_table[i]) != NULL)
220 if (fr_delhtent(iph, ipe, ifs) != 0)
223 *iph->iph_pnext = iph->iph_next;
224 if (iph->iph_next != NULL)
225 iph->iph_next->iph_pnext = iph->iph_pnext;
227 ifs->ifs_ipf_nhtables[iph->iph_unit]--;
229 if (iph->iph_ref == 1) {
230 KFREES(iph->iph_table, iph->iph_size * sizeof(*iph->iph_table));
231 KFREE(iph);
236 void fr_derefhtable(iph, ifs)
237 iphtable_t *iph;
240 iph->iph_ref--;
241 if (iph->iph_ref == 0)
242 fr_delhtable(iph, ifs);
261 iphtable_t *iph;
263 for (iph = ifs->ifs_ipf_htables[unit]; iph != NULL; iph = iph->iph_next)
264 if (strncmp(iph->iph_name, name, sizeof(iph->iph_name)) == 0)
266 return iph;
274 iphtable_t *iph;
282 while ((iph = ifs->ifs_ipf_htables[i]) != NULL) {
283 fr_delhtable(iph, ifs);
296 int fr_addhtent(iph, ipeo, ifs)
297 iphtable_t *iph;
315 iph->iph_size);
326 iph->iph_size);
331 ipe->ipe_next = iph->iph_table[hv];
332 ipe->ipe_pnext = iph->iph_table + hv;
334 if (iph->iph_table[hv] != NULL)
335 iph->iph_table[hv]->ipe_pnext = &ipe->ipe_next;
336 iph->iph_table[hv] = ipe;
338 ipe->ipe_snext = iph->iph_list;
339 ipe->ipe_psnext = &iph->iph_list;
342 iph->iph_list = ipe;
348 iph->iph_masks[0] |= 1 << (bits - 96);
350 iph->iph_masks[1] |= 1 << (bits - 64);
352 iph->iph_masks[2] |= 1 << (bits - 32);
354 iph->iph_masks[3] |= 1 << bits;
360 iph->iph_masks[3] |= 1 << bits;
363 switch (iph->iph_type & ~IPHASH_ANON)
367 iph->iph_flags, IPL_LOGIPF,
377 ifs->ifs_ipf_nhtnodes[iph->iph_unit]++;
386 int fr_delhtent(iph, ipe, ifs)
387 iphtable_t *iph;
399 switch (iph->iph_type & ~IPHASH_ANON)
415 ifs->ifs_ipf_nhtnodes[iph->iph_unit]--;
428 iphtable_t *iph;
440 iph = tptr;
445 ipe = fr_iphmfind6(iph, &addr->in6);
449 ipe = fr_iphmfind(iph, &addr->in4);
479 iphtable_t *iph;
493 iph = tptr;
499 ipe = fr_iphmfind6(iph, &addr->in6);
503 ipe = fr_iphmfind(iph, &addr->in4);
519 static iphtent_t *fr_iphmfind(iph, addr)
520 iphtable_t *iph;
527 hmsk = iph->iph_masks[3];
531 hv = IPE_HASH_FN(ips, msk, iph->iph_size);
532 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_next) {
558 static iphtent_t *fr_iphmfind6(iph, addr)
559 iphtable_t *iph;
566 hmsk[0] = iph->iph_masks[0];
567 hmsk[1] = iph->iph_masks[1];
568 hmsk[2] = iph->iph_masks[2];
569 hmsk[3] = iph->iph_masks[3];
583 iph->iph_size);
584 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_next) {
652 iphtable_t *iph, zp, *nextiph;
656 iph = NULL;
672 iph = token->ipt_data;
673 if (iph == NULL) {
676 nextiph = iph->iph_next;
691 iph = fr_findhtable(ilp->ili_unit, ilp->ili_name, ifs);
692 if (iph == NULL)
695 nextnode = iph->iph_list;
734 if (iph != NULL) {
736 fr_derefhtable(iph, ifs);