Lines Matching defs:tlbt
83 static int is_better_match(in_addr_t newaddr, int indx, tnrh_tlb_t *tlbt);
103 static void print_tlbt(tnrh_tlb_t *tlbt);
785 tnrh_tlb_t *tlbt;
789 if ((tlbt = tnrh_cache_table[i]) != NULL)
791 if (tlbt->src->visited == 0) {
796 tlbt->reload = TNDB_DELETE;
800 tlbt = tlbt->next;
801 } while (tlbt != NULL);
860 tnrh_tlb_ipv6_t *tlbt;
864 if ((tlbt = tnrh_cache_table_v6[i]) != NULL)
866 if (tlbt->src->visited == 0) {
871 tlbt->reload = TNDB_DELETE;
875 tlbt = tlbt->next;
876 } while (tlbt != NULL);
1173 tnrh_tlb_t *tlbt;
1183 if ((tlbt = (tnrh_tlb_t *)calloc(1, sizeof (tnrh_tlb_t))) == NULL)
1185 tlbt->addr = addr;
1186 (void) strncpy(tlbt->template_name, name, TNTNAMSIZ-1);
1187 tlbt->masklen_used = indx;
1188 tlbt->reload = TNDB_LOAD;
1189 tlbt->src = src;
1193 print_tlbt(tlbt);
1197 tnrh_cache_table[hash] = tlbt;
1200 tlbt->next = tnrh_cache_table[hash];
1201 tnrh_cache_table[hash] = tlbt;
1208 tnrh_tlb_t *tlbt = NULL;
1212 tlbt = tnrh_cache_table[hash];
1213 while (tlbt != NULL) {
1214 if (addr == tlbt->addr)
1216 tlbt = tlbt->next;
1218 return (tlbt);
1226 tnrh_tlb_ipv6_t *tlbt;
1234 if ((tlbt = (tnrh_tlb_ipv6_t *)calloc(1,
1237 (void) memcpy(&tlbt->addr, &addr, sizeof (in6_addr_t));
1238 (void) strncpy(tlbt->template_name, name, TNTNAMSIZ-1);
1239 tlbt->masklen_used = indx;
1240 tlbt->reload = TNDB_LOAD;
1241 tlbt->src = src;
1245 tnrh_cache_table_v6[hash] = tlbt;
1248 tlbt->next = tnrh_cache_table_v6[hash];
1249 tnrh_cache_table_v6[hash] = tlbt;
1256 tnrh_tlb_ipv6_t *tlbt = NULL;
1260 tlbt = tnrh_cache_table_v6[hash];
1261 while (tlbt != NULL) {
1262 if (IN6_ARE_ADDR_EQUAL(&addr, &tlbt->addr))
1264 tlbt = tlbt->next;
1266 return (tlbt);
1283 tnrh_tlb_t *tlbt;
1291 tlbt = lookup_cache_table(addr);
1294 if (tlbt == NULL) {
1345 tnrh_tlb_ipv6_t *tlbt;
1355 tlbt = lookup_cache_table_v6(addr);
1359 if (tlbt == NULL) {
1391 is_better_match(in_addr_t newaddr, int indx, tnrh_tlb_t *tlbt)
1393 if (tlbt->masklen_used <= indx) {
1396 if ((newaddr) == (tlbt->addr & tmpmask))
1413 tnrh_tlb_t *tlbt;
1417 tlbt = tnrh_cache_table[i];
1419 while (tlbt != NULL) {
1420 if (is_better_match(newaddr, indx, tlbt)) {
1421 tlbt->masklen_used = indx;
1422 tlbt->src = src;
1430 if (strcmp(name, tlbt->template_name) != 0) {
1431 (void) strncpy(tlbt->template_name,
1433 tlbt->reload = TNDB_LOAD;
1438 tlbt = tlbt->next;
1452 is_better_match_v6(in6_addr_t newaddr, int indx, tnrh_tlb_ipv6_t *tlbt)
1456 if (tlbt->masklen_used <= indx) {
1459 if (V6_MASK_EQ(newaddr, tmpmask, tlbt->addr))
1476 tnrh_tlb_ipv6_t *tlbt;
1480 tlbt = tnrh_cache_table_v6[i];
1482 while (tlbt != NULL) {
1483 if (is_better_match_v6(newaddr, indx, tlbt)) {
1484 tlbt->masklen_used = indx;
1485 tlbt->src = src;
1493 if (strcmp(name, tlbt->template_name) != 0) {
1494 (void) strncpy(tlbt->template_name,
1496 tlbt->reload = TNDB_LOAD;
1501 tlbt = tlbt->next;
1517 tnrh_tlb_t *tlbt, *prev;
1524 prev = tlbt = tnrh_cache_table[i];
1526 while (tlbt != NULL) {
1527 if ((tlbt->reload == TNDB_LOAD) ||
1528 (tlbt->reload == TNDB_DELETE)) {
1531 * Construct such a struct from the tlbt struct we have.
1534 tlbt->addr;
1537 rhentp.rh_prefix = tlbt->masklen_used;
1539 tlbt->template_name);
1543 tlbt->reload);
1544 print_tlbt(tlbt);
1546 update_rh_entry(tlbt->reload, &rhentp);
1548 if (tlbt->reload == TNDB_DELETE) {
1549 if (tlbt == tnrh_cache_table[i]) {
1551 tlbt->next;
1554 prev->next = tlbt->next;
1558 free(tlbt);
1562 tlbt = prev;
1566 tlbt->reload = TNDB_NOOP;
1569 prev = tlbt;
1570 tlbt = tlbt->next;
1581 tnrh_tlb_ipv6_t *tlbt, *prev;
1587 prev = tlbt = tnrh_cache_table_v6[i];
1589 while (tlbt != NULL) {
1590 if ((tlbt->reload == TNDB_LOAD) ||
1591 (tlbt->reload == TNDB_DELETE)) {
1594 * Construct such a struct from the tlbt struct we have.
1597 &tlbt->addr, sizeof (in6_addr_t));
1599 rhentp.rh_prefix = tlbt->masklen_used;
1600 (void) strcpy(rhentp.rh_template, tlbt->template_name);
1602 update_rh_entry(tlbt->reload, &rhentp);
1604 if (tlbt->reload == TNDB_DELETE) {
1605 if (tlbt == tnrh_cache_table_v6[i]) {
1607 tlbt->next;
1610 prev->next = tlbt->next;
1614 free(tlbt);
1618 tlbt = prev;
1622 tlbt->reload = TNDB_NOOP;
1625 prev = tlbt;
1626 tlbt = tlbt->next;
1768 print_cache_entry(tnrh_tlb_t *tlbt)
1772 addr.s_addr = tlbt->addr;
1774 (void) fprintf(logf, "\tTemplate name: %s", tlbt->template_name);
1775 (void) fprintf(logf, "\tMask length used: %d\n", tlbt->masklen_used);
1779 print_cache_entry_v6(tnrh_tlb_ipv6_t *tlbt)
1784 inet_ntop(AF_INET6, &tlbt->addr, abuf, sizeof (abuf)));
1785 (void) fprintf(logf, "\tTemplate name: %s", tlbt->template_name);
1786 (void) fprintf(logf, "\tMask length used: %d\n", tlbt->masklen_used);
1793 tnrh_tlb_t *tlbt;
1799 if ((tlbt = tnrh_cache_table[i]) != NULL)
1800 print_cache_entry(tlbt);
1811 tnrh_tlb_ipv6_t *tlbt;
1817 if ((tlbt = tnrh_cache_table_v6[i]) != NULL)
1818 print_cache_entry_v6(tlbt);
1851 print_tlbt(tnrh_tlb_t *tlbt)
1853 (void) fprintf(logf, "tlbt addr = 0x%4x name = %s \
1854 mask = %u, reload = %d\n", tlbt->addr, tlbt->template_name,
1855 tlbt->masklen_used, tlbt->reload);