@@ -446,11 +446,12 @@ static void netlink_parse_lookup(struct netlink_parse_ctx *ctx,
ctx->stmt = expr_stmt_alloc(loc, expr);
}
-static struct expr *netlink_parse_bitwise_bool(struct netlink_parse_ctx *ctx,
- const struct location *loc,
- const struct nftnl_expr *nle,
- enum nft_registers sreg,
- struct expr *left)
+static struct expr *
+netlink_parse_bitwise_mask_xor(struct netlink_parse_ctx *ctx,
+ const struct location *loc,
+ const struct nftnl_expr *nle,
+ enum nft_registers sreg,
+ struct expr *left)
{
struct nft_data_delinearize nld;
struct expr *expr, *mask, *xor, *or;
@@ -559,9 +560,9 @@ static void netlink_parse_bitwise(struct netlink_parse_ctx *ctx,
op = nftnl_expr_get_u32(nle, NFTNL_EXPR_BITWISE_OP);
switch (op) {
- case NFT_BITWISE_BOOL:
- expr = netlink_parse_bitwise_bool(ctx, loc, nle, sreg,
- left);
+ case NFT_BITWISE_MASK_XOR:
+ expr = netlink_parse_bitwise_mask_xor(ctx, loc, nle, sreg,
+ left);
break;
case NFT_BITWISE_LSHIFT:
expr = netlink_parse_bitwise_shift(ctx, loc, nle, OP_LSHIFT,
@@ -594,9 +594,9 @@ static void combine_binop(mpz_t mask, mpz_t xor, const mpz_t m, const mpz_t x)
mpz_and(mask, mask, m);
}
-static void netlink_gen_shift(struct netlink_linearize_ctx *ctx,
- const struct expr *expr,
- enum nft_registers dreg)
+static void netlink_gen_bitwise_shift(struct netlink_linearize_ctx *ctx,
+ const struct expr *expr,
+ enum nft_registers dreg)
{
enum nft_bitwise_ops op = expr->op == OP_LSHIFT ?
NFT_BITWISE_LSHIFT : NFT_BITWISE_RSHIFT;
@@ -621,9 +621,9 @@ static void netlink_gen_shift(struct netlink_linearize_ctx *ctx,
nft_rule_add_expr(ctx, nle, &expr->location);
}
-static void netlink_gen_bitwise(struct netlink_linearize_ctx *ctx,
- const struct expr *expr,
- enum nft_registers dreg)
+static void netlink_gen_bitwise_mask_xor(struct netlink_linearize_ctx *ctx,
+ const struct expr *expr,
+ enum nft_registers dreg)
{
struct nftnl_expr *nle;
struct nft_data_linearize nld;
@@ -675,7 +675,7 @@ static void netlink_gen_bitwise(struct netlink_linearize_ctx *ctx,
nle = alloc_nft_expr("bitwise");
netlink_put_register(nle, NFTNL_EXPR_BITWISE_SREG, dreg);
netlink_put_register(nle, NFTNL_EXPR_BITWISE_DREG, dreg);
- nftnl_expr_set_u32(nle, NFTNL_EXPR_BITWISE_OP, NFT_BITWISE_BOOL);
+ nftnl_expr_set_u32(nle, NFTNL_EXPR_BITWISE_OP, NFT_BITWISE_MASK_XOR);
nftnl_expr_set_u32(nle, NFTNL_EXPR_BITWISE_LEN, len);
if (expr->byteorder == BYTEORDER_HOST_ENDIAN)
nftnl_expr_set_u32(nle, NFTNL_EXPR_BITWISE_NBITS, expr->len);
@@ -700,10 +700,10 @@ static void netlink_gen_binop(struct netlink_linearize_ctx *ctx,
switch(expr->op) {
case OP_LSHIFT:
case OP_RSHIFT:
- netlink_gen_shift(ctx, expr, dreg);
+ netlink_gen_bitwise_shift(ctx, expr, dreg);
break;
default:
- netlink_gen_bitwise(ctx, expr, dreg);
+ netlink_gen_bitwise_mask_xor(ctx, expr, dreg);
break;
}
}
In the next few patches we add support for doing AND, OR and XOR operations directly in the kernel, so rename a couple of functions and an enum constant related to mask-and-xor boolean operations. Signed-off-by: Jeremy Sowden <jeremy@azazel.net> --- src/netlink_delinearize.c | 17 +++++++++-------- src/netlink_linearize.c | 18 +++++++++--------- 2 files changed, 18 insertions(+), 17 deletions(-)