app/testpmd: dump TCI when asking for VLAN insertion
Checks
Commit Message
I got some report for users that VLAN insertion was not working as the
only thing they could see in verbose mode was a 0x0800 ethertype even
though the RTE_MBUF_F_TX_VLAN flag was shown.
Dump the VLAN TCI from mbuf metadata when VLAN insertion is requested.
This should enhance the situation.
Before:
src=76:4E:EA:3F:78:1D - dst=50:7C:6F:3C:10:5B - pool=mb_pool_1 -
type=0x0800 - length=64 - nb_segs=1 -
sw ptype: L2_ETHER L3_IPV4 L4_UDP -
l2_len=14 - l3_len=20 - l4_len=8 - Send queue=0x0
ol_flags: RTE_MBUF_F_TX_VLAN RTE_MBUF_F_TX_L4_NO_CKSUM
After:
src=76:4E:EA:3F:78:1D - dst=50:7C:6F:3C:10:5B - pool=mb_pool_1 -
type=0x0800 - length=64 - nb_segs=1 - VLAN tci=0x2a -
sw ptype: L2_ETHER L3_IPV4 L4_UDP -
l2_len=14 - l3_len=20 - l4_len=8 - Send queue=0x0
ol_flags: RTE_MBUF_F_TX_VLAN RTE_MBUF_F_TX_L4_NO_CKSUM
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
app/test-pmd/util.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Comments
On 3/18/2024 8:02 AM, David Marchand wrote:
> I got some report for users that VLAN insertion was not working as the
> only thing they could see in verbose mode was a 0x0800 ethertype even
> though the RTE_MBUF_F_TX_VLAN flag was shown.
>
> Dump the VLAN TCI from mbuf metadata when VLAN insertion is requested.
> This should enhance the situation.
>
> Before:
> src=76:4E:EA:3F:78:1D - dst=50:7C:6F:3C:10:5B - pool=mb_pool_1 -
> type=0x0800 - length=64 - nb_segs=1 -
> sw ptype: L2_ETHER L3_IPV4 L4_UDP -
> l2_len=14 - l3_len=20 - l4_len=8 - Send queue=0x0
> ol_flags: RTE_MBUF_F_TX_VLAN RTE_MBUF_F_TX_L4_NO_CKSUM
>
> After:
> src=76:4E:EA:3F:78:1D - dst=50:7C:6F:3C:10:5B - pool=mb_pool_1 -
> type=0x0800 - length=64 - nb_segs=1 - VLAN tci=0x2a -
> sw ptype: L2_ETHER L3_IPV4 L4_UDP -
> l2_len=14 - l3_len=20 - l4_len=8 - Send queue=0x0
> ol_flags: RTE_MBUF_F_TX_VLAN RTE_MBUF_F_TX_L4_NO_CKSUM
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
Applied to dpdk-next-net/main, thanks.
@@ -180,11 +180,13 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[],
if (is_timestamp_enabled(mb))
MKDUMPSTR(print_buf, buf_size, cur_len,
" - timestamp %"PRIu64" ", get_timestamp(mb));
- if (ol_flags & RTE_MBUF_F_RX_QINQ)
+ if ((is_rx && (ol_flags & RTE_MBUF_F_RX_QINQ) != 0) ||
+ (!is_rx && (ol_flags & RTE_MBUF_F_TX_QINQ) != 0))
MKDUMPSTR(print_buf, buf_size, cur_len,
" - QinQ VLAN tci=0x%x, VLAN tci outer=0x%x",
mb->vlan_tci, mb->vlan_tci_outer);
- else if (ol_flags & RTE_MBUF_F_RX_VLAN)
+ else if ((is_rx && (ol_flags & RTE_MBUF_F_RX_VLAN) != 0) ||
+ (!is_rx && (ol_flags & RTE_MBUF_F_TX_VLAN) != 0))
MKDUMPSTR(print_buf, buf_size, cur_len,
" - VLAN tci=0x%x", mb->vlan_tci);
if (!is_rx && (ol_flags & RTE_MBUF_DYNFLAG_TX_METADATA))