Good finding, this may help you:

https://gerrit.fd.io/r/c/vpp/+/23396

— 
Damjan

> On 12 Nov 2019, at 17:02, Dimitar Ivanov <d...@telco.com> wrote:
> 
> All this happen in case where tap interface is set to some bridge-domain ! If 
> i create tap interface and set mactime on it, 
> vnet_feature_start_device_input_x1 is hit and next node is correct
> 
> root@ucpe-vpp:~# vppctl show trace
> ------------------- Start of thread 0 vpp_main -------------------
> Packet 1
> 
> 00:06:51:715004: virtio-input
>   virtio: hw_if_index 16 next-index 6 vring 0 len 42
>     hdr: flags 0x00 gso_type 0x00 hdr_len 0 gso_size 0 csum_start 0 
> csum_offset 0 num_buffers 1
> 00:06:51:715033: mactime
>   MACTIME: src mac 3e:61:12:f3:46:9d device mac-3e:61:12:f3:46:9d result pass
> 
> 00:06:51:715039: ethernet-input
>   ARP: 3e:61:12:f3:46:9d -> ff:ff:ff:ff:ff:ff
> 00:06:51:715044: arp-input
>   request, type ethernet/IP4, address size 6/4
>   3e:61:12:f3:46:9d/12.12.12.1 <http://12.12.12.1/> -> 
> 00:00:00:00:00:00/12.12.12.2 <http://12.12.12.2/>
> 00:06:51:715049: arp-disabled
>   request, type ethernet/IP4, address size 6/4
>   3e:61:12:f3:46:9d/12.12.12.1 <http://12.12.12.1/> -> 
> 00:00:00:00:00:00/12.12.12.2 <http://12.12.12.2/>
> 00:06:51:715051: error-drop
>   rx:tap0
> 00:06:51:715054: drop
>   arp-disabled: ARP Disabled on this interface
> 
> But when assign interface to bridge-domain X,  
> vnet_feature_start_device_input_x1 still is hit but next node simply skip 
> mactime
> 
> vpp# show trace 
> ------------------- Start of thread 0 vpp_main -------------------
> Packet 1
> 
> 00:09:01:266614: virtio-input
>   virtio: hw_if_index 16 next-index 4 vring 0 len 42
>     hdr: flags 0x00 gso_type 0x00 hdr_len 0 gso_size 0 csum_start 0 
> csum_offset 0 num_buffers 1
> 00:09:01:266621: ethernet-input
>   ARP: 3e:61:12:f3:46:9d -> ff:ff:ff:ff:ff:ff
> 00:09:01:266624: l2-input
>   l2-input: sw_if_index 16 dst ff:ff:ff:ff:ff:ff src 3e:61:12:f3:46:9d
> 00:09:01:266626: l2-learn
>   l2-learn: sw_if_index 16 dst ff:ff:ff:ff:ff:ff src 3e:61:12:f3:46:9d 
> bd_index 12
> 00:09:01:266631: error-drop
>   rx:tap0
> 00:09:01:266635: drop
>   l2-flood: L2 replication complete
> 
> Display of features of tap0 still shows that mactime is on device-input
> 
> 
> 
> On Tue, Nov 12, 2019 at 11:31 AM Damjan Marion <dmar...@me.com 
> <mailto:dmar...@me.com>> wrote:
> 
> 
> > On 12 Nov 2019, at 10:19, Dimitar Ivanov <d...@telco.com 
> > <mailto:d...@telco.com>> wrote:
> > 
> > Sorry for missing post to vpp-dev.
> > So i'm using correct TAP interface.
> 
> yes, Looks like a bug. Somebidy will need to debug it.
> If you have time and gdb skills, try to find out if 
> vnet_feature_start_device_input_x1 in src/vnet/devices/virtio/node.c is hit…
> 
> From the trace you can see that next-index is 4.
> 
> "show node virtio-input" will likely tell you that next-index 4 is 
> ethernet-input.
> 
> vnet_feature_start_device_input_x1 i supposed to change next-index to 
> whatever next-index for mactime is…
> 
> 
> > Here is some trace with activated mactime on tap0
> > 
> > vpp# show trace
> > Limiting display to 50 packets. To display more specify max.
> > ------------------- Start of thread 0 vpp_main -------------------
> > Packet 1
> > 
> > 00:02:42:141421: virtio-input
> >  virtio: hw_if_index 2 next-index 4 vring 0 len 98
> >    hdr: flags 0x00 gso_type 0x00 hdr_len 0 gso_size 0 csum_start 0
> > csum_offset 0 num_buffers 1
> > 00:02:42:141425: ethernet-input
> >  IP4: 52:54:00:30:80:22 -> 74:d4:35:9d:21:ac
> > 00:02:42:141426: l2-input
> >  l2-input: sw_if_index 2 dst 74:d4:35:9d:21:ac src 52:54:00:30:80:22
> > 00:02:42:141427: l2-learn
> >  l2-learn: sw_if_index 2 dst 74:d4:35:9d:21:ac src 52:54:00:30:80:22 
> > bd_index 1
> > 00:02:42:141428: l2-fwd
> >  l2-fwd:   sw_if_index 2 dst 74:d4:35:9d:21:ac src 52:54:00:30:80:22
> > bd_index 1 result [0x1000000000001, 1] none
> > 00:02:42:141430: l2-output
> >  l2-output: sw_if_index 1 dst 74:d4:35:9d:21:ac src 52:54:00:30:80:22
> > data 08 00 45 00 00 54 37 57 00 00 40 01
> > 00:02:42:141430: host-data0-output
> >  host-data0 l2_hdr_offset_valid l3_hdr_offset_valid
> >  IP4: 52:54:00:30:80:22 -> 74:d4:35:9d:21:ac
> >  ICMP: 10.3.72.59 -> 10.3.72.254
> >    tos 0x00, ttl 64, length 84, checksum 0x9e13
> >    fragment id 0x3757
> >  ICMP echo_reply checksum 0x1f49
> > 
> > Packet 2
> > 
> > 00:02:43:142927: virtio-input
> >  virtio: hw_if_index 2 next-index 4 vring 0 len 98
> >    hdr: flags 0x00 gso_type 0x00 hdr_len 0 gso_size 0 csum_start 0 
> > csum_offset
> > 0 num_buffers 1
> > 00:02:43:142931: ethernet-input
> >  IP4: 52:54:00:30:80:22 -> 74:d4:35:9d:21:ac
> > 00:02:43:142932: l2-input
> >  l2-input: sw_if_index 2 dst 74:d4:35:9d:21:ac src 52:54:00:30:80:22
> > 00:02:43:142934: l2-learn
> >  l2-learn: sw_if_index 2 dst 74:d4:35:9d:21:ac src 52:54:00:30:80:22 
> > bd_index 1
> > 00:02:43:142935: l2-fwd
> >  l2-fwd:   sw_if_index 2 dst 74:d4:35:9d:21:ac src 52:54:00:30:80:22 
> > bd_index 1
> > result [0x1000000000001, 1] none
> > 00:02:43:142936: l2-output
> >  l2-output: sw_if_index 1 dst 74:d4:35:9d:21:ac src 52:54:00:30:80:22 data 
> > 08 0
> > 0 45 00 00 54 38 0b 00 00 40 01
> > 00:02:43:142937: host-data0-output
> >  host-data0 l2_hdr_offset_valid l3_hdr_offset_valid
> >  IP4: 52:54:00:30:80:22 -> 74:d4:35:9d:21:ac
> >  ICMP: 10.3.72.59 -> 10.3.72.254
> >    tos 0x00, ttl 64, length 84, checksum 0x9d5f
> >    fragment id 0x380b
> >  ICMP echo_reply checksum 0x3841
> > 
> > Here is a features configured:
> > 
> > vpp# show interface tap0 features
> > Feature paths configured on tap0...
> > 
> > nsh-eth-output:
> >  none configured
> > 
> > nsh-output:
> >  none configured
> > 
> > mpls-output:
> >  none configured
> > 
> > mpls-input:
> >  mpls-not-enabled
> > 
> > arp:
> >  arp-disabled
> > 
> > ip6-drop:
> >  none configured
> > 
> > ip6-punt:
> >  none configured
> > 
> > ip6-local:
> >  none configured
> > 
> > ip6-output:
> >  none configured
> > 
> > ip6-multicast:
> >  ip6-not-enabled
> > 
> > ip6-unicast:
> >  ip6-not-enabled
> > 
> > ip4-drop:
> >  none configured
> > 
> > ip4-punt:
> >  none configured
> > 
> > ip4-local:
> >  none configured
> > 
> > ip4-output:
> >  none configured
> > 
> > ip4-multicast:
> >  ip4-not-enabled
> > 
> > ip4-unicast:
> >  ip4-not-enabled
> > 
> > l2-output-nonip:
> >  none configured
> > 
> > l2-input-nonip:
> >  none configured
> > 
> > l2-output-ip6:
> >  none configured
> > 
> > l2-input-ip6:
> >  none configured
> > 
> > l2-output-ip4:
> >  none configured
> > 
> > l2-input-ip4:
> >  none configured
> > 
> > ethernet-output:
> >  none configured
> > 
> > interface-output:
> >  mactime-tx
> > 
> > device-input:
> >  mactime
> > 
> > l2-input:
> >            LEARN (l2-learn)
> >              FWD (l2-fwd)
> >         UU_FLOOD (l2-flood)
> >            FLOOD (l2-flood)
> > 
> > l2-output:
> >           OUTPUT (interface-output)
> > 
> > vpp# show node counters
> >   Count                    Node                  Reason
> >     10971               mactime-tx               Permitted packets
> >     14413                l2-output               L2 output packets
> >     14510                l2-learn                L2 learn packets
> >       147                l2-learn                L2 learn misses
> >        17                l2-learn                L2 mac moves
> >     14510                l2-input                L2 input packets
> >        13                 l2-fwd                 Reflection Drop
> >     12872                l2-flood                L2 flood packets
> >        84                l2-flood                L2 replication complete
> > 
> > As is seen from counters there is no mactime (rx part) counters.
> > 
> > Any ideas ?
> > 
> > On Tue, Nov 12, 2019 at 10:25 AM Damjan Marion <dmar...@me.com 
> > <mailto:dmar...@me.com>> wrote:
> >> 
> >> 
> >> 
> >>> On 12 Nov 2019, at 08:57, Dimitar Ivanov <d...@telco.com 
> >>> <mailto:d...@telco.com>> wrote:
> >>> 
> >>> Hi All,
> >>> I need a help in investigation of one problem with TAP interface. I try 
> >>> to develop plugin that inspects packets send from Host Linux via TAP 
> >>> interface and take some actions on them. Scenario is like this:
> >>> Linux Host Tap -->vpp tap0 --> other vpp interface. My node is set to be 
> >>> visited before 'ethernet-input'. Strange is that when Linux starts to 
> >>> send packets over tap interface my node is not called. I have checked 
> >>> counters of all nodes and see that event ethernet-input node counters are 
> >>> not increment. Only nodes that are activated (regarding counters) are 
> >>> l2-input, l2-fwd and etc.
> >>> I was with impression that my code is not correct. In order to isolate 
> >>> mistakes from my side, i have activate mactime feature on same interface. 
> >>> The result was that mactime-tx is activated, but mactime - not. What is 
> >>> special on tap interface and why flow is not same like other interfaces ? 
> >>> Do You have some suggestion how to install my node in order to be on RX 
> >>> flow of TAP interface ? VPP version is v19.08.1. -=-=-=-=-=-=-=-=-=-=-=-
> >>> Links: You receive all messages sent to this group.
> >> 
> >> It may be that you are using old tap code which doesn’t support 
> >> device-input feature arc.
> >> 
> >> Do you use “create tap ...” command?
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > 
> > View/Reply Online (#14569): https://lists.fd.io/g/vpp-dev/message/14569 
> > <https://lists.fd.io/g/vpp-dev/message/14569>
> > Mute This Topic: https://lists.fd.io/mt/54144964/675642 
> > <https://lists.fd.io/mt/54144964/675642>
> > Mute #vpp: https://lists.fd.io/mk?hashtag=vpp&subid=1480514 
> > <https://lists.fd.io/mk?hashtag=vpp&subid=1480514>
> > Group Owner: vpp-dev+ow...@lists.fd.io <mailto:vpp-dev%2bow...@lists.fd.io>
> > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub 
> > <https://lists.fd.io/g/vpp-dev/unsub>  [dmar...@me.com 
> > <mailto:dmar...@me.com>]
> > -=-=-=-=-=-=-=-=-=-=-=-
> 
> 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> 
> View/Reply Online (#14573): https://lists.fd.io/g/vpp-dev/message/14573
> Mute This Topic: https://lists.fd.io/mt/54144964/675642
> Mute #vpp: https://lists.fd.io/mk?hashtag=vpp&subid=1480514
> Group Owner: vpp-dev+ow...@lists.fd.io
> Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [dmar...@me.com]
> -=-=-=-=-=-=-=-=-=-=-=-

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#14576): https://lists.fd.io/g/vpp-dev/message/14576
Mute This Topic: https://lists.fd.io/mt/54144964/21656
Mute #vpp: https://lists.fd.io/mk?hashtag=vpp&subid=1480452
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to