netlink_gen_key(key, &nld);
key->flags &= ~EXPR_F_INTERVAL;
- nftnl_set_elem_set(nlse, NFTNL_SET_ELEM_KEY, nld.value, nld.len);
+ nftnl_set_elem_set_imm(nlse, NFTNL_SET_ELEM_KEY,
+ nld.value, nld.len,
+ nld.byteorder, nld.sizes);
key->flags |= EXPR_F_INTERVAL_END;
netlink_gen_key(key, &nld);
key->flags &= ~EXPR_F_INTERVAL_END;
- nftnl_set_elem_set(nlse, NFTNL_SET_ELEM_KEY_END,
- nld.value, nld.len);
+ nftnl_set_elem_set_imm(nlse, NFTNL_SET_ELEM_KEY_END,
+ nld.value, nld.len,
+ nld.byteorder, nld.sizes);
} else {
netlink_gen_key(key, &nld);
- nftnl_set_elem_set(nlse, NFTNL_SET_ELEM_KEY, nld.value, nld.len);
+ nftnl_set_elem_set_imm(nlse, NFTNL_SET_ELEM_KEY,
+ nld.value, nld.len,
+ nld.byteorder, nld.sizes);
}
break;
}
case EXPR_RANGE:
case EXPR_RANGE_VALUE:
case EXPR_PREFIX:
- nftnl_set_elem_set(nlse, NFTNL_SET_ELEM_DATA,
- nld.value, nld.len);
+ nftnl_set_elem_set_imm(nlse, NFTNL_SET_ELEM_DATA,
+ nld.value, nld.len,
+ nld.byteorder, nld.sizes);
break;
default:
BUG("unexpected set element expression");
netlink_put_register(nle, NFTNL_EXPR_BITWISE_SREG, sreg);
netlink_put_register(nle, NFTNL_EXPR_BITWISE_DREG, sreg);
nftnl_expr_set_u32(nle, NFTNL_EXPR_BITWISE_LEN, nld.len);
- nftnl_expr_set(nle, NFTNL_EXPR_BITWISE_MASK, nld.value, nld.len);
- nftnl_expr_set(nle, NFTNL_EXPR_BITWISE_XOR, zero.value, zero.len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_BITWISE_MASK,
+ nld.value, nld.len, nld.byteorder);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_BITWISE_XOR,
+ zero.value, zero.len, zero.byteorder);
nft_rule_add_expr(ctx, nle, &expr->location);
return expr->right->prefix;
nle = alloc_nft_expr("cmp");
netlink_put_register(nle, NFTNL_EXPR_CMP_SREG, sreg);
nftnl_expr_set_u32(nle, NFTNL_EXPR_CMP_OP, NFT_CMP_EQ);
- nftnl_expr_set(nle, NFTNL_EXPR_CMP_DATA, nld2.value, nld2.len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_CMP_DATA,
+ nld2.value, nld2.len, nld2.byteorder);
nft_rule_add_expr(ctx, nle, &expr->location);
} else {
nle = alloc_nft_expr("bitwise");
netlink_put_register(nle, NFTNL_EXPR_BITWISE_SREG, sreg);
netlink_put_register(nle, NFTNL_EXPR_BITWISE_DREG, sreg);
nftnl_expr_set_u32(nle, NFTNL_EXPR_BITWISE_LEN, len);
- nftnl_expr_set(nle, NFTNL_EXPR_BITWISE_MASK, nld2.value, nld2.len);
- nftnl_expr_set(nle, NFTNL_EXPR_BITWISE_XOR, nld.value, nld.len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_BITWISE_MASK,
+ nld2.value, nld2.len, nld2.byteorder);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_BITWISE_XOR,
+ nld.value, nld.len, nld.byteorder);
nft_rule_add_expr(ctx, nle, &expr->location);
nle = alloc_nft_expr("cmp");
else
nftnl_expr_set_u32(nle, NFTNL_EXPR_CMP_OP, NFT_CMP_NEQ);
- nftnl_expr_set(nle, NFTNL_EXPR_CMP_DATA, nld.value, nld.len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_CMP_DATA,
+ nld.value, nld.len, nld.byteorder);
nft_rule_add_expr(ctx, nle, &expr->location);
}
nftnl_expr_set_u32(nle, NFTNL_EXPR_CMP_OP,
netlink_gen_cmp_op(expr->op));
netlink_gen_data(right, &nld);
- nftnl_expr_set(nle, NFTNL_EXPR_CMP_DATA, nld.value, len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_CMP_DATA,
+ nld.value, len, nld.byteorder);
release_register(ctx, expr->left);
nft_rule_add_expr(ctx, nle, &expr->location);
netlink_gen_raw_data(expr->right->value, expr->right->byteorder,
sizeof(uint32_t), &nld);
- nftnl_expr_set(nle, NFTNL_EXPR_BITWISE_DATA, nld.value,
- nld.len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_BITWISE_DATA,
+ nld.value, nld.len, nld.byteorder);
nft_rule_add_expr(ctx, nle, &expr->location);
}
nftnl_expr_set_u32(nle, NFTNL_EXPR_BITWISE_LEN, len);
netlink_gen_raw_data(mask, expr->byteorder, len, &nld);
- nftnl_expr_set(nle, NFTNL_EXPR_BITWISE_MASK, nld.value, nld.len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_BITWISE_MASK,
+ nld.value, nld.len, nld.byteorder);
netlink_gen_raw_data(xor, expr->byteorder, len, &nld);
- nftnl_expr_set(nle, NFTNL_EXPR_BITWISE_XOR, nld.value, nld.len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_BITWISE_XOR,
+ nld.value, nld.len, nld.byteorder);
mpz_clear(tmp);
mpz_clear(val);
netlink_gen_data(expr, &nld);
switch (expr->etype) {
case EXPR_VALUE:
- nftnl_expr_set(nle, NFTNL_EXPR_IMM_DATA, nld.value, nld.len);
+ nftnl_expr_set_imm(nle, NFTNL_EXPR_IMM_DATA,
+ nld.value, nld.len, nld.byteorder);
break;
case EXPR_VERDICT:
if (expr->chain) {