> On 12 Nov 2019, at 10:19, Dimitar Ivanov <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> wrote:
>> 
>> 
>> 
>>> On 12 Nov 2019, at 08:57, Dimitar Ivanov <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
> 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 (#14570): https://lists.fd.io/g/vpp-dev/message/14570
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