X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmlx5%2Fmlx5_flow.c;h=d3c06610e1520e979d203a20b364dd6279ab46a6;hb=4ab2c661ed935d229c70c7d4a5c4f7606bf62ebe;hp=0712926742221963a0041f27a554ee6cd31a88a1;hpb=953007dd6eec6ee7faa1f26d91b213da4e5d069c;p=dpdk.git 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; }