app/testpmd: fix flow director endianness

The vlan mask and tunnel id mask of flow director are defined as big
endian. So they should be converted.
When the mask is printed, the parameters are not converted either.
This patch converts the mask parameters.

Fixes: 7c554b4f0484 ("app/testpmd: update display of flow director information")
Fixes: 53b2bb9b7ea7 ("app/testpmd: new flow director commands")

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
This commit is contained in:
Wenzhuo Lu 2016-10-19 09:23:00 +08:00 committed by Bruce Richardson
parent 21f3fc4664
commit 0a0060e396
2 changed files with 23 additions and 15 deletions

View File

@ -9125,16 +9125,16 @@ cmd_flow_director_mask_parsed(void *parsed_result,
return;
}
mask->vlan_tci_mask = res->vlan_mask;
mask->vlan_tci_mask = rte_cpu_to_be_16(res->vlan_mask);
} else if (fdir_conf.mode == RTE_FDIR_MODE_PERFECT_TUNNEL) {
if (strcmp(res->mode_value, "Tunnel")) {
printf("Please set mode to Tunnel.\n");
return;
}
mask->vlan_tci_mask = res->vlan_mask;
mask->vlan_tci_mask = rte_cpu_to_be_16(res->vlan_mask);
mask->mac_addr_byte_mask = res->mac_addr_byte_mask;
mask->tunnel_id_mask = res->tunnel_id_mask;
mask->tunnel_id_mask = rte_cpu_to_be_32(res->tunnel_id_mask);
mask->tunnel_type_mask = res->tunnel_type_mask;
} else {
if (strcmp(res->mode_value, "IP")) {

View File

@ -2057,25 +2057,33 @@ set_qmap(portid_t port_id, uint8_t is_rx, uint16_t queue_id, uint8_t map_value)
static inline void
print_fdir_mask(struct rte_eth_fdir_masks *mask)
{
printf("\n vlan_tci: 0x%04x", mask->vlan_tci_mask);
printf("\n vlan_tci: 0x%04x", rte_be_to_cpu_16(mask->vlan_tci_mask));
if (fdir_conf.mode == RTE_FDIR_MODE_PERFECT_TUNNEL)
printf(", mac_addr: 0x%02x, tunnel_type: 0x%01x,"
" tunnel_id: 0x%08x",
mask->mac_addr_byte_mask, mask->tunnel_type_mask,
mask->tunnel_id_mask);
rte_be_to_cpu_32(mask->tunnel_id_mask));
else if (fdir_conf.mode != RTE_FDIR_MODE_PERFECT_MAC_VLAN) {
printf(", src_ipv4: 0x%08x, dst_ipv4: 0x%08x,"
" src_port: 0x%04x, dst_port: 0x%04x",
mask->ipv4_mask.src_ip, mask->ipv4_mask.dst_ip,
mask->src_port_mask, mask->dst_port_mask);
printf(", src_ipv4: 0x%08x, dst_ipv4: 0x%08x",
rte_be_to_cpu_32(mask->ipv4_mask.src_ip),
rte_be_to_cpu_32(mask->ipv4_mask.dst_ip));
printf("\n src_ipv6: 0x%08x,0x%08x,0x%08x,0x%08x,"
" dst_ipv6: 0x%08x,0x%08x,0x%08x,0x%08x",
mask->ipv6_mask.src_ip[0], mask->ipv6_mask.src_ip[1],
mask->ipv6_mask.src_ip[2], mask->ipv6_mask.src_ip[3],
mask->ipv6_mask.dst_ip[0], mask->ipv6_mask.dst_ip[1],
mask->ipv6_mask.dst_ip[2], mask->ipv6_mask.dst_ip[3]);
printf("\n src_port: 0x%04x, dst_port: 0x%04x",
rte_be_to_cpu_16(mask->src_port_mask),
rte_be_to_cpu_16(mask->dst_port_mask));
printf("\n src_ipv6: 0x%08x,0x%08x,0x%08x,0x%08x",
rte_be_to_cpu_32(mask->ipv6_mask.src_ip[0]),
rte_be_to_cpu_32(mask->ipv6_mask.src_ip[1]),
rte_be_to_cpu_32(mask->ipv6_mask.src_ip[2]),
rte_be_to_cpu_32(mask->ipv6_mask.src_ip[3]));
printf("\n dst_ipv6: 0x%08x,0x%08x,0x%08x,0x%08x",
rte_be_to_cpu_32(mask->ipv6_mask.dst_ip[0]),
rte_be_to_cpu_32(mask->ipv6_mask.dst_ip[1]),
rte_be_to_cpu_32(mask->ipv6_mask.dst_ip[2]),
rte_be_to_cpu_32(mask->ipv6_mask.dst_ip[3]));
}
printf("\n");