From 4ab2c661ed935d229c70c7d4a5c4f7606bf62ebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A9lio=20Laranjeiro?= Date: Wed, 1 Mar 2017 13:49:42 +0100 Subject: [PATCH] net/mlx5: support ether type support in flow item Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_flow.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 0712926742..d3c06610e1 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -163,6 +163,7 @@ static const struct mlx5_flow_items mlx5_flow_items[] = { .mask = &(const struct rte_flow_item_eth){ .dst.addr_bytes = "\xff\xff\xff\xff\xff\xff", .src.addr_bytes = "\xff\xff\xff\xff\xff\xff", + .type = -1, }, .default_mask = &rte_flow_item_eth_mask, .mask_sz = sizeof(struct rte_flow_item_eth), @@ -552,13 +553,16 @@ mlx5_flow_create_eth(const struct rte_flow_item *item, mask = default_mask; memcpy(eth->val.dst_mac, spec->dst.addr_bytes, ETHER_ADDR_LEN); memcpy(eth->val.src_mac, spec->src.addr_bytes, ETHER_ADDR_LEN); + eth->val.ether_type = spec->type; memcpy(eth->mask.dst_mac, mask->dst.addr_bytes, ETHER_ADDR_LEN); memcpy(eth->mask.src_mac, mask->src.addr_bytes, ETHER_ADDR_LEN); + eth->mask.ether_type = mask->type; /* Remove unwanted bits from values. */ for (i = 0; i < ETHER_ADDR_LEN; ++i) { eth->val.dst_mac[i] &= eth->mask.dst_mac[i]; eth->val.src_mac[i] &= eth->mask.src_mac[i]; } + eth->val.ether_type &= eth->mask.ether_type; return 0; }