Home | History | Annotate | Download | only in netinet

Lines Matching defs:fra

375 	ipfr_t *fra, frag, *fran;
452 for (fra = table[idx]; (fra != NULL); fra = fra->ipfr_hnext)
453 if (!bcmp((char *)&frag.ipfr_ifp, (char *)&fra->ipfr_ifp,
461 fra = fran;
464 fra->ipfr_rule = fr;
476 if ((fra->ipfr_hnext = table[idx]) != NULL)
477 table[idx]->ipfr_hprev = &fra->ipfr_hnext;
478 fra->ipfr_hprev = table + idx;
479 fra->ipfr_data = NULL;
480 table[idx] = fra;
481 bcopy((char *)&frag.ipfr_ifp, (char *)&fra->ipfr_ifp, IPFR_CMPSZ);
482 fra->ipfr_v = fin->fin_v;
483 fra->ipfr_p = fin->fin_p;
484 fra->ipfr_ttl = softc->ipf_ticks + softf->ipfr_ttl;
485 fra->ipfr_firstend = frag.ipfr_firstend;
491 fra->ipfr_seen0 = 1;
492 fra->ipfr_off = off + (fin->fin_dlen >> 3);
493 fra->ipfr_pass = pass;
494 fra->ipfr_ref = 1;
495 fra->ipfr_pkts = 1;
496 fra->ipfr_bytes = fin->fin_plen;
499 return fra;
514 ipfr_t *fra;
520 fra = ipfr_frag_new(softc, softf, fin, pass, softf->ipfr_heads, &softc->ipf_frag);
522 fra = ipfr_frag_new(softc, softf, fin, pass, softf->ipfr_heads);
524 if (fra != NULL) {
525 *softf->ipfr_tail = fra;
526 fra
527 softf->ipfr_tail = &fra->ipfr_next;
528 fra->ipfr_next = NULL;
531 return fra ? 0 : -1;
549 ipfr_t *fra;
555 fra = ipfr_frag_new(softc, softf, fin, pass, softf->ipfr_nattab,
558 fra = ipfr_frag_new(softc, softf, fin, pass, softf->ipfr_nattab);
560 if (fra != NULL) {
561 fra->ipfr_data = nat;
562 nat->nat_data = fra;
563 *softf->ipfr_nattail = fra;
564 fra->ipfr_prev = softf->ipfr_nattail;
565 softf->ipfr_nattail = &fra->ipfr_next;
566 fra->ipfr_next = NULL;
588 ipfr_t *fra;
594 fra = ipfr_frag_new(softc, softf, fin, 0, softf->ipfr_ipidtab, &softf->ipfr_ipidfrag);
596 fra = ipfr_frag_new(softc, softf, fin, 0, softf->ipfr_ipidtab);
598 if (fra != NULL) {
599 fra->ipfr_data = (void *)(intptr_t)ipid;
600 *softf->ipfr_ipidtail = fra;
601 fra->ipfr_prev = softf->ipfr_ipidtail;
602 softf->ipfr_ipidtail = &fra->ipfr_next;
603 fra->ipfr_next = NULL;
606 return fra ? 0 : -1;
876 ipfr_t *fra;
883 fra = ipf_frag_lookup(softc, softf, fin, softf->ipfr_heads,
886 fra = ipf_frag_lookup(softc, softf, fin, softf->ipfr_heads);
888 if (fra != NULL) {
893 fr = fra->ipfr_rule;
943 /* Parameters: fra(I) - pointer to fragment structure to delete */
952 ipf_frag_delete(ipf_main_softc_t *softc, ipfr_t *fra, ipfr_t ***tail)
956 if (fra->ipfr_next)
957 fra->ipfr_next->ipfr_prev = fra->ipfr_prev;
958 *fra->ipfr_prev = fra->ipfr_next;
959 if (*tail == &fra->ipfr_next)
960 *tail = fra->ipfr_prev;
962 if (fra->ipfr_hnext)
963 fra->ipfr_hnext->ipfr_hprev = fra->ipfr_hprev;
964 *fra->ipfr_hprev = fra->ipfr_hnext;
966 if (fra->ipfr_rule != NULL) {
967 (void) ipf_derefrule(softc, &fra->ipfr_rule);
970 if (fra->ipfr_ref <= 0)
971 ipf_frag_free(softf, fra);
981 ipf_frag_free(ipf_frag_softc_t *softf, ipfr_t *fra)
983 KFREE(fra);
1001 ipfr_t *fra;
1005 while ((fra = softf->ipfr_list) != NULL) {
1006 fra->ipfr_ref--;
1007 ipf_frag_delete(softc, fra, &softf->ipfr_tail);
1014 fra = softf->ipfr_natlist) != NULL) {
1015 nat = fra->ipfr_data;
1017 if (nat->nat_data == fra)
1020 fra->ipfr_ref--;
1021 ipf_frag_delete(softc, fra, &softf->ipfr_nattail);
1040 ipfr_t **fp, *fra;
1053 for (fp = &softf->ipfr_list; ((fra = *fp) != NULL); ) {
1054 if (fra->ipfr_ttl > softc->ipf_ticks)
1056 fra->ipfr_ref--;
1057 ipf_frag_delete(softc, fra, &softf->ipfr_tail);
1062 for (fp = &softf->ipfr_ipidlist; ((fra = *fp) != NULL); ) {
1063 if (fra->ipfr_ttl > softc->ipf_ticks)
1065 fra->ipfr_ref--;
1066 ipf_frag_delete(softc, fra, &softf->ipfr_ipidtail);
1083 for (fp = &softf->ipfr_natlist; ((fra = *fp) != NULL); ) {
1084 if (fra->ipfr_ttl > softc->ipf_ticks)
1086 nat = fra->ipfr_data;
1088 if (nat->nat_data == fra)
1091 fra->ipfr_ref--;
1092 ipf_frag_delete(softc, fra, &softf->ipfr_nattail);
1269 ipfr_t *fra;
1271 fra = *frp;
1275 fra->ipfr_ref--;
1276 if (fra->ipfr_ref <= 0)
1277 ipf_frag_free(softf, fra);