Пример #1
0
static void cmp_nftnl_expr(struct nftnl_expr *rule_a,
			      struct nftnl_expr *rule_b)
{
	if (nftnl_expr_get_u64(rule_a, NFTNL_EXPR_CTR_BYTES) !=
	    nftnl_expr_get_u64(rule_b, NFTNL_EXPR_CTR_BYTES))
		print_err("Expr NFTNL_EXPR_CTR_BYTES mismatches");
	if (nftnl_expr_get_u64(rule_a, NFTNL_EXPR_CTR_PACKETS) !=
	    nftnl_expr_get_u64(rule_b, NFTNL_EXPR_CTR_PACKETS))
		print_err("Expr NFTNL_EXPR_CTR_PACKETS mismatches");
}
Пример #2
0
static int rule_expr_cb(struct nftnl_expr *expr, void *data) {

        struct callback_data *cb = data;
        const char *name;

        name = nftnl_expr_get_str(expr, NFTNL_EXPR_NAME);

        if (strcmp(name, "counter")) {
                cb->value = nftnl_expr_get_u64(expr, NFTNL_EXPR_CTR_BYTES);
                cb->success = true;
        }

        return 0;
}
Пример #3
0
static void cmp_nftnl_expr(struct nftnl_expr *rule_a,
			      struct nftnl_expr *rule_b)
{
	if (nftnl_expr_get_u64(rule_a, NFTNL_EXPR_LIMIT_RATE) !=
	    nftnl_expr_get_u64(rule_b, NFTNL_EXPR_LIMIT_RATE))
		print_err("Expr CTR_BYTES mismatches");
	if (nftnl_expr_get_u64(rule_a, NFTNL_EXPR_LIMIT_UNIT) !=
	    nftnl_expr_get_u64(rule_b, NFTNL_EXPR_LIMIT_UNIT))
		print_err("Expr CTR_PACKET mismatches");
	if (nftnl_expr_get_u64(rule_a, NFTNL_EXPR_LIMIT_BURST) !=
	    nftnl_expr_get_u64(rule_b, NFTNL_EXPR_LIMIT_BURST))
		print_err("Expr CTR_PACKET mismatches");
	if (nftnl_expr_get_u64(rule_a, NFTNL_EXPR_LIMIT_TYPE) !=
	    nftnl_expr_get_u64(rule_b, NFTNL_EXPR_LIMIT_TYPE))
		print_err("Expr TYPE mismatches");
}
Пример #4
0
void nft_parse_counter(struct nftnl_expr *e, struct xt_counters *counters)
{
	counters->pcnt = nftnl_expr_get_u64(e, NFTNL_EXPR_CTR_PACKETS);
	counters->bcnt = nftnl_expr_get_u64(e, NFTNL_EXPR_CTR_BYTES);
}