Hoi,
And in the interest of completeness, here's a trace of an L2XC between
Gi10/0/3.100 (pop1) and Gi10/0/2
vpp# show int span
Source Destination Device
L2
GigabitEthernet10/0/2 tap0 ( none) (
both)
GigabitEthernet10/0/3.100 tap0 ( none) (
both)
On the way in, span-l2-input is not seen (but I expect it to) while
span-l2-output is seen (but no packets arrive at tap0):
01:17:49:677347: dpdk-input
GigabitEthernet10/0/3 rx queue 0
buffer 0x4a909e: current data 0, length 102, buffer-pool 0, ref-count 1,
trace handle 0x1
ext-hdr-valid
PKT MBUF: port 3, nb_segs 1, pkt_len 102
buf_len 2176, data_len 102, ol_flags 0x0, data_off 128, phys_addr
0x2f842800
packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
IP4: fe:54:00:10:10:03 -> fe:54:00:10:10:02 802.1q vlan 100
ICMP: 192.0.2.1 -> 192.0.2.2
tos 0x00, ttl 64, length 84, checksum 0xc4b0 dscp CS0 ecn NON_ECN
fragment id 0xf1f4, flags DONT_FRAGMENT
ICMP echo_request checksum 0xa46c id 52958
01:17:49:677362: ethernet-input
frame: flags 0x1, hw-if-index 4, sw-if-index 4
IP4: fe:54:00:10:10:03 -> fe:54:00:10:10:02 802.1q vlan 100
01:17:49:677371: l2-input
l2-input: sw_if_index 12 dst fe:54:00:10:10:02 src fe:54:00:10:10:03
[l2-input-vtr l2-output ]
01:17:49:677373: l2-input-vtr
l2-input-vtr: sw_if_index 12 dst fe:54:00:10:10:02 src fe:54:00:10:10:03
data 08 00 45 00 00 54 f1 f4 40 00 40 01
01:17:49:677375: l2-output
l2-output: sw_if_index 3 dst fe:54:00:10:10:02 src fe:54:00:10:10:03 data
08 00 45 00 00 54 f1 f4 40 00 40 01
*01:17:49:677377: span-l2-output*
* SPAN: mirrored GigabitEthernet10/0/2 -> tap0*
01:17:49:677397: GigabitEthernet10/0/2-output
GigabitEthernet10/0/2
IP4: fe:54:00:10:10:03 -> fe:54:00:10:10:02
ICMP: 192.0.2.1 -> 192.0.2.2
tos 0x00, ttl 64, length 84, checksum 0xc4b0 dscp CS0 ecn NON_ECN
fragment id 0xf1f4, flags DONT_FRAGMENT
ICMP echo_request checksum 0xa46c id 52958
01:17:49:677401: GigabitEthernet10/0/2-tx
GigabitEthernet10/0/2 tx queue 0
buffer 0x4a909e: current data 4, length 98, buffer-pool 0, ref-count 1,
trace handle 0x1
ext-hdr-valid
l2-hdr-offset 4 l3-hdr-offset 18
PKT MBUF: port 3, nb_segs 1, pkt_len 98
buf_len 2176, data_len 98, ol_flags 0x0, data_off 132, phys_addr
0x2f842800
packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
IP4: fe:54:00:10:10:03 -> fe:54:00:10:10:02
ICMP: 192.0.2.1 -> 192.0.2.2
tos 0x00, ttl 64, length 84, checksum 0xc4b0 dscp CS0 ecn NON_ECN
fragment id 0xf1f4, flags DONT_FRAGMENT
ICMP echo_request checksum 0xa46c id 52958
On the way back span-l2-input is seen (but no packets emit):
01:17:49:672900: dpdk-input
GigabitEthernet10/0/2 rx queue 0
buffer 0x4a6f60: current data 0, length 98, buffer-pool 0, ref-count 1,
trace handle 0x2
ext-hdr-valid
PKT MBUF: port 2, nb_segs 1, pkt_len 98
buf_len 2176, data_len 98, ol_flags 0x0, data_off 128, phys_addr
0x2fbbd880
packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
IP4: fe:54:00:10:10:02 -> fe:54:00:10:10:03
ICMP: 192.0.2.2 -> 192.0.2.1
tos 0x00, ttl 64, length 84, checksum 0x7618 dscp CS0 ecn NON_ECN
fragment id 0x808d
ICMP echo_reply checksum 0xac6c id 52958
01:17:49:672910: ethernet-input
frame: flags 0x1, hw-if-index 3, sw-if-index 3
IP4: fe:54:00:10:10:02 -> fe:54:00:10:10:03
01:17:49:672917: l2-input
l2-input: sw_if_index 3 dst fe:54:00:10:10:03 src fe:54:00:10:10:02
[span-l2-input l2-output ]
*01:17:49:672918: span-l2-input*
* SPAN: mirrored GigabitEthernet10/0/2 -> tap0*
01:17:49:672935: l2-output
l2-output: sw_if_index 12 dst fe:54:00:10:10:03 src fe:54:00:10:10:02
data 81 00 00 64 08 00 45 00 00 54 80 8d
01:17:49:672937: GigabitEthernet10/0/3-output
GigabitEthernet10/0/3.100
IP4: fe:54:00:10:10:02 -> fe:54:00:10:10:03 802.1q vlan 100
ICMP: 192.0.2.2 -> 192.0.2.1
tos 0x00, ttl 64, length 84, checksum 0x7618 dscp CS0 ecn NON_ECN
fragment id 0x808d
ICMP echo_reply checksum 0xac6c id 52958
01:17:49:672940: GigabitEthernet10/0/3-tx
GigabitEthernet10/0/3 tx queue 0
buffer 0x4a6f60: current data -4, length 102, buffer-pool 0, ref-count 1,
trace handle 0x2
ext-hdr-valid
vlan-1-deep l2-hdr-offset -4 l3-hdr-offset 14
PKT MBUF: port 2, nb_segs 1, pkt_len 102
buf_len 2176, data_len 102, ol_flags 0x0, data_off 124, phys_addr
0x2fbbd880
packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
IP4: fe:54:00:10:10:02 -> fe:54:00:10:10:03 802.1q vlan 100
ICMP: 192.0.2.2 -> 192.0.2.1
tos 0x00, ttl 64, length 84, checksum 0x7618 dscp CS0 ecn NON_ECN
fragment id 0x808d
ICMP echo_reply checksum 0xac6c id 52958
If I place the span on 'device' I see the packet in both directions, and if
I place it on both devices, I correctly see the packets twice (once with
VLAN 100 on Gi10/0/3, and once without a tag on Gi10/0/2).
a) I suspect that l2-span is broken.
b) it would be nice to be able to add the SPAN to ethernet-input as that
might capture sub-interfaces
groet,
Pim
On Sat, Jan 14, 2023 at 10:17 PM Pim van Pelt <[email protected]> wrote:
> Hoi,
>
> As a followup, here's a trace of the l2 enabled sub-int when SPAN is
> enabled in L2. The packet is indeed seen and copied (in bold, below), but
> not emitted on tap0:
>
> 01:04:06:883962: dpdk-input
>
> GigabitEthernet10/0/3 rx queue 0
>
> buffer 0x4be6d8: current data 0, length 46, buffer-pool 0, ref-count 1,
> trace handle 0x2
>
> ext-hdr-valid
>
> PKT MBUF: port 3, nb_segs 1, pkt_len 46
>
> buf_len 2176, data_len 46, ol_flags 0x0, data_off 128, phys_addr
> 0x2f59b680
>
> packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
>
> rss 0x0 fdir.hi 0x0 fdir.lo 0x0
>
> ARP: fe:54:00:10:10:03 -> ff:ff:ff:ff:ff:ff 802.1q vlan 100
>
> request, type ethernet/IP4, address size 6/4
>
> fe:54:00:10:10:03/192.0.2.1 -> 00:00:00:00:00:00/192.0.2.2
>
> 01:04:06:883974: ethernet-input
>
> frame: flags 0x1, hw-if-index 4, sw-if-index 4
>
> ARP: fe:54:00:10:10:03 -> ff:ff:ff:ff:ff:ff 802.1q vlan 100
>
> 01:04:06:883981: l2-input
>
> l2-input: sw_if_index 12 dst ff:ff:ff:ff:ff:ff src fe:54:00:10:10:03
> [span-l2-input l2-input-vtr l2-output ]
>
> *01:04:06:883984: span-l2-input*
>
> * SPAN: mirrored GigabitEthernet10/0/3.100 -> tap0*
>
> 01:04:06:884002: l2-input-vtr
>
> l2-input-vtr: sw_if_index 12 dst ff:ff:ff:ff:ff:ff src
> fe:54:00:10:10:03 data 08 06 00 01 08 00 06 04 00 01 fe 54
>
> 01:04:06:884005: l2-output
>
> l2-output: sw_if_index 13 dst ff:ff:ff:ff:ff:ff src fe:54:00:10:10:03
> data 08 06 00 01 08 00 06 04 00 01 fe 54
>
> 01:04:06:884007: vxlan4-encap
>
> VXLAN encap to vxlan_tunnel0 vni 100
>
> 01:04:06:884010: ip4-rewrite
>
> tx_sw_if_index 2 dpo-idx 15 : ipv4 via 192.168.11.7
> GigabitEthernet10/0/1: mtu:9000 next:7 flags:[]
> 5254001110005254001010010800 flow hash: 0xd00ea053
>
> 00000000:
> 52540011100052540010100108004500004e00000000fd11264bc0a80b00c0a8
>
> 00000020: 0b0353a012b5003a00000800000000006400fffffffffffffe540010
>
> 01:04:06:884019: GigabitEthernet10/0/1-output
>
> GigabitEthernet10/0/1
>
> IP4: 52:54:00:10:10:01 -> 52:54:00:11:10:00
>
> UDP: 192.168.11.0 -> 192.168.11.3
>
> tos 0x00, ttl 253, length 78, checksum 0x264b dscp CS0 ecn NON_ECN
>
> fragment id 0x0000
>
> UDP: 21408 -> 4789
>
> length 58, checksum 0x0000
>
> 01:04:06:884023: GigabitEthernet10/0/1-tx
>
> GigabitEthernet10/0/1 tx queue 0
>
> buffer 0x4be6d8: current data -46, length 92, buffer-pool 0, ref-count
> 1, trace handle 0x2
>
> ext-hdr-valid
>
> l2-hdr-offset 4 l3-hdr-offset 18
>
> PKT MBUF: port 3, nb_segs 1, pkt_len 92
>
> buf_len 2176, data_len 92, ol_flags 0x0, data_off 82, phys_addr
> 0x2f59b680
>
> packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
>
> rss 0x0 fdir.hi 0x0 fdir.lo 0x0
>
> IP4: 52:54:00:10:10:01 -> 52:54:00:11:10:00
>
> UDP: 192.168.11.0 -> 192.168.11.3
>
> tos 0x00, ttl 253, length 78, checksum 0x264b dscp CS0 ecn NON_ECN
>
> fragment id 0x0000
>
> UDP: 21408 -> 4789
>
> length 58, checksum 0x0000
>
> On Sat, Jan 14, 2023 at 8:58 PM Pim van Pelt via lists.fd.io <pim=
> [email protected]> wrote:
>
>> Hoi folks,
>>
>> I was diagnosing an issue today and needed to see some traffic that was
>> traversing an l2xc between a sub-int and a vxlan_tunnel.
>>
>> Take the following simple config:
>>
>> create vxlan tunnel src 194.1.163.5 dst 194.1.163.1 instance 11 vni 10502
>> decap-next l2
>>
>> create sub GigabitEthernet4/0/0 519 dot1q 519 exact-match
>>
>> set interface l2 xconnect GigabitEthernet4/0/0.519 vxlan_tunnel11
>>
>> set interface l2 tag-rewrite GigabitEthernet4/0/0.519 pop 1
>>
>> set interface l2 xconnect vxlan_tunnel11 GigabitEthernet4/0/0.519
>>
>>
>> Note - this l2xc works just fine. My initial idea was to SPAN on
>> vxlan_tunnel11 (l2)
>> create tap host-if vppspan host-mtu-size 9216
>> set int state tap0 up
>> set int span vxlan_tunnel11 l2 destination tap0
>> (no traffic)
>>
>> Then I thought I'd take a look at GigabitEthernet4/0/0.519
>> set int span GigabitEthernet4/0/0.519 destination tap0
>> (no traffic)
>>
>> Or in L2 mode:
>> set int span GigabitEthernet4/0/0.519 l2 destination tap0
>> (no traffic)
>>
>> Finally, I applied the SPAN on the underlying GigabitEthernet4/0/0 port:
>> set int span GigabitEthernet4/0/0 destination tap0
>> Traffic!
>>
>> So I'm wondering - is my understanding of l2-input/l2-output SPAN
>> correct, or does it work in a different way? And, is it feasible for me to
>> SPAN a sub-int or other sw_index (like the vxlan tunnel, both currently not
>> working)?
>>
>> --
>> Pim van Pelt <[email protected]>
>> PBVP1-RIPE - http://www.ipng.nl/
>>
>>
>>
>>
>
> --
> Pim van Pelt <[email protected]>
> PBVP1-RIPE - http://www.ipng.nl/
>
--
Pim van Pelt <[email protected]>
PBVP1-RIPE - http://www.ipng.nl/
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#22468): https://lists.fd.io/g/vpp-dev/message/22468
Mute This Topic: https://lists.fd.io/mt/96273897/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-