Lines Matching refs:info
8 * Jérôme de Vivie <devivie@info.enserb.u-bordeaux.fr>
183 static uint32_t parse_burst(const char *burst, struct xt_hashlimit_mtinfo1 *info)
277 struct xt_hashlimit_mtinfo1 *info = (void *)match->data;
279 info->cfg.mode = 0;
280 info->cfg.burst = XT_HASHLIMIT_BURST;
281 info->cfg.gc_interval = XT_HASHLIMIT_GCINTERVAL;
282 info->cfg.srcmask = 32;
283 info->cfg.dstmask = 32;
288 struct xt_hashlimit_mtinfo1 *info = (void *)match->data;
290 info->cfg.mode = 0;
291 info->cfg.burst = XT_HASHLIMIT_BURST;
292 info->cfg.gc_interval = XT_HASHLIMIT_GCINTERVAL;
293 info->cfg.srcmask = 128;
294 info->cfg.dstmask = 128;
328 struct xt_hashlimit_info *info = cb->data;
333 if (!parse_rate(cb->arg, &info->cfg.avg, cb->udata))
338 if (parse_mode(&info->cfg.mode, cb->arg) < 0)
347 struct xt_hashlimit_mtinfo1 *info = cb->data;
352 info->cfg.burst = parse_burst(cb->arg, info);
356 info->cfg.mode |= XT_HASHLIMIT_INVERT;
357 if (parse_bytes(cb->arg, &info->cfg.avg, cb->udata))
358 info->cfg.mode |= XT_HASHLIMIT_BYTES;
359 else if (!parse_rate(cb->arg, &info->cfg.avg, cb->udata))
365 info->cfg.mode |= XT_HASHLIMIT_INVERT;
366 if (parse_bytes(cb->arg, &info->cfg.avg, cb->udata))
367 info->cfg.mode |= XT_HASHLIMIT_BYTES;
368 else if (!parse_rate(cb->arg, &info->cfg.avg, cb->udata))
373 if (parse_mode(&info->cfg.mode, cb->arg) < 0)
378 info->cfg.srcmask = cb->val.hlen;
381 info->cfg.dstmask = cb->val.hlen;
389 struct xt_hashlimit_info *info = cb->data;
395 info->cfg.expire = udata->mult * 1000; /* from s to msec */
401 struct xt_hashlimit_mtinfo1 *info = cb->data;
407 info->cfg.expire = udata->mult * 1000; /* from s to msec */
409 if (info->cfg.mode & XT_HASHLIMIT_BYTES) {
412 if (info->cfg.burst < cost_to_bytes(info->cfg.avg))
414 "burst cannot be smaller than %ub", cost_to_bytes(info->cfg.avg));
416 burst = info->cfg.burst;
417 burst /= cost_to_bytes(info->cfg.avg);
418 if (info->cfg.burst % cost_to_bytes(info->cfg.avg))
421 info->cfg.expire = XT_HASHLIMIT_BYTE_EXPIRE_BURST * 1000;
423 info->cfg.burst = burst;
424 } else if (info->cfg.burst > XT_HASHLIMIT_BURST_MAX)
541 hashlimit_mt_print(const struct xt_hashlimit_mtinfo1 *info, unsigned int dmask)
545 if (info->cfg.mode & XT_HASHLIMIT_INVERT)
550 if (info->cfg.mode & XT_HASHLIMIT_BYTES) {
551 quantum = print_bytes(info->cfg.avg, info->cfg.burst, "");
553 quantum = print_rate(info->cfg.avg);
554 printf(" burst %u", info->cfg.burst);
556 if (info->cfg.mode & (XT_HASHLIMIT_HASH_SIP | XT_HASHLIMIT_HASH_SPT |
559 print_mode(info->cfg.mode, '-');
561 if (info->cfg.size != 0)
562 printf(" htable-size %u", info->cfg.size);
563 if (info->cfg.max != 0)
564 printf(" htable-max %u", info->cfg.max);
565 if (info->cfg.gc_interval != XT_HASHLIMIT_GCINTERVAL)
566 printf(" htable-gcinterval %u", info->cfg.gc_interval);
567 if (info->cfg.expire != quantum)
568 printf(" htable-expire %u", info->cfg.expire);
570 if (info->cfg.srcmask != dmask)
571 info->cfg.srcmask);
572 if (info->cfg.dstmask != dmask)
573 printf(" dstmask %u", info->cfg.dstmask);
580 const struct xt_hashlimit_mtinfo1 *info = (const void *)match->data;
582 hashlimit_mt_print(info, 32);
589 const struct xt_hashlimit_mtinfo1 *info = (const void *)match->data;
591 hashlimit_mt_print(info, 128);
619 hashlimit_mt_save(const struct xt_hashlimit_mtinfo1 *info, unsigned int dmask)
623 if (info->cfg.mode & XT_HASHLIMIT_INVERT)
628 if (info->cfg.mode & XT_HASHLIMIT_BYTES) {
629 quantum = print_bytes(info->cfg.avg, info->cfg.burst, "--hashlimit-");
631 quantum = print_rate(info->cfg.avg);
632 printf(" --hashlimit-burst %u", info->cfg.burst);
635 if (info->cfg.mode & (XT_HASHLIMIT_HASH_SIP | XT_HASHLIMIT_HASH_SPT |
638 print_mode(info->cfg.mode, ',');
641 printf(" --hashlimit-name %s", info->name);
643 if (info->cfg.size != 0)
644 printf(" --hashlimit-htable-size %u", info->cfg.size);
645 if (info->cfg.max != 0)
646 printf(" --hashlimit-htable-max %u", info->cfg.max);
647 if (info->cfg.gc_interval != XT_HASHLIMIT_GCINTERVAL)
648 printf(" --hashlimit-htable-gcinterval %u", info->cfg.gc_interval);
649 if (info->cfg.expire != quantum)
650 printf(" --hashlimit-htable-expire %u", info->cfg.expire);
652 if (info->cfg.srcmask != dmask)
653 printf(" --hashlimit-srcmask %u", info->cfg.srcmask);
654 if (info->cfg.dstmask != dmask)
655 printf(" --hashlimit-dstmask %u", info->cfg.dstmask);
661 const struct xt_hashlimit_mtinfo1 *info = (const void *)match->data;
663 hashlimit_mt_save(info, 32);
669 const struct xt_hashlimit_mtinfo1 *info = (const void *)match->data;
671 hashlimit_mt_save(info, 128);