Lines Matching refs:preflen
289 unsigned preflen, uint32_t *prefix)
299 if (preflen == 0) {
303 if (preflen < 32) {
304 uint32_t mask = htonl(0xffffffff << (32 - preflen));
306 preflen = 0;
309 preflen -= 32;
321 size_t len, unsigned preflen, void *val)
328 if (preflen == 0) {
333 compute_prefix(nwords, addr, preflen, prefix);
334 entry = hashmap_insert(&lpm->prefix[preflen], prefix, len, lpm->flags);
336 const unsigned n = --preflen >> 5;
337 lpm->bitmask[n] |= 0x80000000U >> (preflen & 31);
348 lpm_remove(lpm_t *lpm, const void *addr, size_t len, unsigned preflen)
354 if (preflen == 0) {
358 compute_prefix(nwords, addr, preflen, prefix);
359 return hashmap_remove(&lpm->prefix[preflen], prefix, len);
378 const unsigned preflen = (32 * n) + (32 - --i);
379 lpm_hmap_t *hmap = &lpm->prefix[preflen];
382 compute_prefix(nwords, addr, preflen, prefix);
399 lpm_lookup_prefix(lpm_t *lpm, const void *addr, size_t len, unsigned preflen)
406 if (preflen == 0) {
409 compute_prefix(nwords, addr, preflen, prefix);
410 entry = hashmap_lookup(&lpm->prefix[preflen], prefix, len);
425 lpm_strtobin(const char *cidr, void *addr, size_t *len, unsigned *preflen)
434 *preflen = atoi(&buf[off + 1]);
437 *preflen = LPM_MAX_PREFIX;
445 if (*preflen == LPM_MAX_PREFIX) {
446 *preflen = 32;