Hi Damjan,

Thanks for your quick response. Will try tapv2.

Are there any recommendations / best_practices for vpp to send/receive packets 
to/from a socket based application running side by side? 

Will a veth pair be any better than tapv2 in this case? 

-R

> On Jan 24, 2019, at 11:43 PM, Damjan Marion <dmar...@me.com> wrote:
> 
> 
> Don't use tapcli code, it is outdated and I just submitted patch to deprecate 
> it (as agreed few months ago on the community call).
> 
> https://gerrit.fd.io/r/17073
> 
> tapv2 (create interface tap) should be able to run on worker, but don't 
> expect magic, it's jus tap....
> 
> 
>> On 25 Jan 2019, at 08:14, ranadip....@gmail.com wrote:
>> 
>> Hello, 
>> 
>> I am trying to use vpp with 4 worker threads. 
>> Client is sending packet to server through vpp. This packet comes to vpp, 
>> and gets picked up from a VF. VPP sends this packet to the another 
>> user-space application over a tapcli interface. 
>> The user-space application processes the packet, and then sends it back to 
>> vpp. Vpp forwards the packet to the server. 
>> 
>> I am using vpp with 4 worker threads.
>> 
>> Without the traffic, four worker threads are all showing ~100% cpu usage 
>> (which is expected). However, with traffic, the vpp main thread is also 
>> showing ~100% cpu usage. I do not want vpp main thread to reach 100% cpu. 
>> With the limited knowledge that I have on vpp, it seems like main thread is 
>> doing lots of processing in the tapcli-rx node. Is there a way to keep vpp 
>> main relatively free? Is tap interface the correct choice to communicate 
>> between vpp and another user-space application? If not, what should be used? 
>> 
>> I have tried this on both vpp 18.07 and 18.10. 
>>  
>> vpp# show run
>> Thread 0 vpp_main (lcore 2)
>> Time 916.9, average vectors/node 40.16, last 128 main loops 0.00 per node 
>> 0.00
>>   vector rates in 1.3178e5, out 1.3178e5, drop 1.3087e-2, punt 0.0000e0
>>              Name                 State         Calls          Vectors       
>>  Suspends         Clocks       Vectors/Call
>> VirtualFunctionEthernet3/10/1-   active            3008704       120840447   
>>             0          1.36e1           40.16
>> VirtualFunctionEthernet3/10/1-   active            3008704       120840447   
>>             0          1.02e2           40.16
>> acl-plugin-fa-cleaner-process  event wait                0               0   
>>             1          1.85e4            0.00
>> admin-up-down-process          event wait                0               0   
>>             1          1.20e3            0.00
>> api-rx-from-ring                any wait                 0               0   
>>            50          7.80e4            0.00
>> arp-input                        active                  1               1   
>>             0          2.39e6            1.00
>> avf-process                    event wait                0               0   
>>             1          2.14e3            0.00
>> bfd-process                    event wait                0               0   
>>             1          1.84e3            0.00
>> bond-process                   event wait                0               0   
>>             1          1.44e3            0.00
>> cdp-process                     any wait                 0               0   
>>             1          1.38e7            0.00
>> dhcp-client-process             any wait                 0               0   
>>            10          1.02e4            0.00
>> dhcp6-client-cp-process         any wait                 0               0   
>>             1          1.07e3            0.00
>> dhcp6-pd-client-cp-process      any wait                 0               0   
>>             1          9.28e2            0.00
>> dhcp6-pd-reply-publisher-proce event wait                0               0   
>>             1          8.88e2            0.00
>> dhcp6-reply-publisher-process  event wait                0               0   
>>             1          1.02e3            0.00
>> dns-resolver-process            any wait                 0               0   
>>             1          2.18e3            0.00
>> dpdk-ipsec-process                done                   1               0   
>>             0          1.29e5            0.00
>> dpdk-process                    any wait                 0               0   
>>           306          5.73e4            0.00
>> error-drop                       active                 11              12   
>>             0          5.73e3            1.09
>> ethernet-input                   active            3008710       120840454   
>>             0          3.78e1           40.16
>> fib-walk                        any wait                 0               0   
>>           459          3.03e3            0.00
>> flow-report-process             any wait                 0               0   
>>             1          6.92e2            0.00
>> flowprobe-timer-process         any wait                 0               0   
>>             1          3.09e3            0.00
>> igmp-timer-process             event wait                0               0   
>>             1          2.18e3            0.00
>> ikev2-manager-process           any wait                 0               0   
>>           916          2.46e3            0.00
>> ioam-export-process             any wait                 0               0   
>>             1          1.10e3            0.00
>> ip-neighbor-scan-process        any wait                 0               0   
>>            16          7.03e3            0.00
>> ip-route-resolver-process       any wait                 0               0   
>>            10          8.13e3            0.00
>> ip4-glean                        active                  2               2   
>>             0          9.34e3            1.00
>> ip4-input                        active            3008704       120840447   
>>             0          4.03e1           40.16
>> ip4-lookup                       active            3008704       120840447   
>>             0          3.67e1           40.16
>> ip4-reassembly-expire-walk      any wait                 0               0   
>>            92          3.96e3            0.00
>> ip4-rewrite                      active            3008702       120840445   
>>             0          3.08e1           40.16
>> ip6-icmp-neighbor-discovery-ev  any wait                 0               0   
>>           916          2.00e3            0.00
>> ip6-input                        active                  5               6   
>>             0          1.17e3            1.20
>> ip6-not-enabled                  active                  5               6   
>>             0          5.45e2            1.20
>> ip6-reassembly-expire-walk      any wait                 0               0   
>>            92          4.30e3            0.00
>> l2fib-mac-age-scanner-process  event wait                0               0   
>>             1          1.78e3            0.00
>> lacp-process                   event wait                0               0   
>>             1          1.41e7            0.00
>> lisp-retry-service              any wait                 0               0   
>>           459          4.11e3            0.00
>> lldp-process                   event wait                0               0   
>>             1          1.31e7            0.00
>> memif-process                  event wait                0               0   
>>             1          4.28e3            0.00
>> nat-det-expire-walk               done                   1               0   
>>             0          1.23e3            0.00
>> nat64-expire-walk              event wait                0               0   
>>             1          1.46e4            0.00
>> rd-cp-process                   any wait                 0               0   
>>             1          9.16e2            0.00
>> send-dhcp6-client-message-proc  any wait                 0               0   
>>             1          2.88e3            0.00
>> send-dhcp6-pd-client-message-p  any wait                 0               0   
>>             1          1.02e3            0.00
>> send-garp-na-process           event wait                0               0   
>>             1          2.88e4            0.00
>> send-rs-process                 any wait                 0               0   
>>             1          1.24e3            0.00
>> startup-config-process            done                   1               0   
>>             1          3.75e3            0.00
>> tapcli-rx                     interrupt wa         5382120       120840506   
>>             0          2.42e3           22.45
>> udp-ping-process                any wait                 0               0   
>>             1          5.70e3            0.00
>> unix-cli-local:6                 active                  6               0   
>>           757         3.46e15            0.00
>> unix-epoll-input                 polling          16312904               0   
>>             0          6.94e4            0.00
>> vhost-user-process              any wait                 0               0   
>>             1          1.32e4            0.00
>> vhost-user-send-interrupt-proc  any wait                 0               0   
>>             1          1.03e3            0.00
>> vpe-link-state-process         event wait                0               0   
>>             3          4.95e3            0.00
>> vpe-oam-process                 any wait                 0               0   
>>           450          2.86e3            0.00
>> vxlan-gpe-ioam-export-process   any wait                 0               0   
>>             1          8.76e2            0.00
>> wildcard-ip4-arp-publisher-pro event wait                0               0   
>>             1          1.09e3            0.00
>> ---------------
>> Thread 1 vpp_wk_0 (lcore 3)
>> Time 916.9, average vectors/node 1.43, last 128 main loops 0.00 per node 0.00
>>   vector rates in 3.2809e4, out 3.2809e4, drop 5.6599e-1, punt 0.0000e0
>>              Name                 State         Calls          Vectors       
>>  Suspends         Clocks       Vectors/Call
>> arp-input                        active                518             518   
>>             0          7.74e3            1.00
>> dpdk-input                       polling        3205687180        30084768   
>>             0          4.31e4            0.00
>> error-drop                       active                519             519   
>>             0          1.28e3            1.00
>> ethernet-input                   active                518             518   
>>             0          1.73e3            1.00
>> ip4-glean                        active                  1               1   
>>             0          6.62e4            1.00
>> ip4-input-no-checksum            active           20966739        30084250   
>>             0          3.64e2            1.43
>> ip4-lookup                       active           20966739        30084250   
>>             0          2.46e2            1.43
>> ip4-rewrite                      active           20966738        30084249   
>>             0          1.93e2            1.43
>> tapcli-0-output                  active           20966739        30084250   
>>             0          2.03e2            1.43
>> tapcli-0-tx                      active           20966739        30084250   
>>             0          1.29e4            1.43
>> ---------------
>> Thread 2 vpp_wk_1 (lcore 4)
>> Time 916.9, average vectors/node 1.45, last 128 main loops 0.00 per node 0.00
>>   vector rates in 3.2819e4, out 3.2819e4, drop 0.0000e0, punt 0.0000e0
>>              Name                 State         Calls          Vectors       
>>  Suspends         Clocks       Vectors/Call
>> dpdk-input                       polling        3062149112        30094113   
>>             0          4.24e4            0.00
>> ip4-input-no-checksum            active           20687846        30094113   
>>             0          3.67e2            1.45
>> ip4-lookup                       active           20687846        30094113   
>>             0          2.59e2            1.45
>> ip4-rewrite                      active           20687846        30094113   
>>             0          2.03e2            1.45
>> tapcli-0-output                  active           20687846        30094113   
>>             0          2.11e2            1.45
>> tapcli-0-tx                      active           20687846        30094113   
>>             0          1.31e4            1.45
>> ---------------
>> Thread 3 vpp_wk_2 (lcore 5)
>> Time 916.9, average vectors/node 1.46, last 128 main loops 0.00 per node 0.00
>>   vector rates in 3.2774e4, out 3.2774e4, drop 2.4428e-1, punt 0.0000e0
>>              Name                 State         Calls          Vectors       
>>  Suspends         Clocks       Vectors/Call
>> dpdk-input                       polling        2997474079        30052436   
>>             0          4.33e4             .01
>> error-drop                       active                224             224   
>>             0          1.57e3            1.00
>> ip4-drop                         active                224             224   
>>             0          8.69e2            1.00
>> ip4-input-no-checksum            active           20609931        30052436   
>>             0          3.74e2            1.46
>> ip4-lookup                       active           20609931        30052436   
>>             0          2.64e2            1.46
>> ip4-rewrite                      active           20609737        30052212   
>>             0          2.01e2            1.46
>> tapcli-0-output                  active           20609737        30052212   
>>             0          2.15e2            1.46
>> tapcli-0-tx                      active           20609737        30052212   
>>             0          1.31e4            1.46
>> ---------------
>> Thread 4 vpp_wk_3 (lcore 6)
>> Time 916.9, average vectors/node 1.45, last 128 main loops 0.00 per node 0.00
>>   vector rates in 3.2811e4, out 3.2811e4, drop 0.0000e0, punt 0.0000e0
>>              Name                 State         Calls          Vectors       
>>  Suspends         Clocks       Vectors/Call
>> dpdk-input                       polling        3135905643        30086296   
>>             0          4.30e4            0.00
>> ip4-input-no-checksum            active           20714610        30086296   
>>             0          3.74e2            1.45
>> ip4-lookup                       active           20714610        30086296   
>>             0          2.55e2            1.45
>> ip4-rewrite                      active           20714610        30086296   
>>             0          1.97e2            1.45
>> tapcli-0-output                  active           20714610        30086296   
>>             0          2.04e2            1.45
>> tapcli-0-tx                      active           20714610        30086296   
>>             0          1.31e4            1.45
>> 
>> Here is one of the packets traced on vpp main thread. 
>> 
>> vpp# show trace
>> ------------------- Start of thread 0 vpp_main -------------------
>> Packet 1
>>  
>> 00:11:26:605715: tapcli-rx
>>   tapcli-0
>> 00:11:26:605725: ethernet-input
>>   IP4: c2:aa:32:4f:d8:1c -> 02:fe:d9:0f:5c:f4
>> 00:11:26:605741: ip4-input
>>   TCP: 10.0.1.1 -> 172.18.60.74
>>     tos 0x00, ttl 64, length 60, checksum 0x475f
>>     fragment id 0x0000, flags DONT_FRAGMENT
>>   TCP: 82 -> 60818
>>     seq. 0xcbbfa586 ack 0x36bb48c6
>>     flags 0x12 SYN ACK, tcp header: 40 bytes
>>     window 28960, checksum 0xab2b
>> 00:11:26:605748: ip4-lookup
>>   fib 0 dpo-idx 3 flow hash: 0x00000000
>>   TCP: 10.0.1.1 -> 172.18.60.74
>>     tos 0x00, ttl 64, length 60, checksum 0x475f
>>     fragment id 0x0000, flags DONT_FRAGMENT
>>   TCP: 82 -> 60818
>>     seq. 0xcbbfa586 ack 0x36bb48c6
>>     flags 0x12 SYN ACK, tcp header: 40 bytes
>>     window 28960, checksum 0xab2b
>> 00:11:26:605754: ip4-rewrite
>>   tx_sw_if_index 1 dpo-idx 3 : ipv4 via 172.18.60.74 
>> VirtualFunctionEthernet3/10/1: mtu:9000 ac1f6b17f379da78bd634ef70800 flow 
>> hash: 0x00000000
>>   00000000: ac1f6b17f379da78bd634ef708004500003c000040003f06485f0a000101ac12
>>   00000020: 3c4a0052ed92cbbfa58636bb48c6a0127120ab2b0000020405b40402
>> 00:11:26:605755: VirtualFunctionEthernet3/10/1-output
>>   VirtualFunctionEthernet3/10/1
>>   IP4: da:78:bd:63:4e:f7 -> ac:1f:6b:17:f3:79
>>   TCP: 10.0.1.1 -> 172.18.60.74
>>     tos 0x00, ttl 63, length 60, checksum 0x485f
>>     fragment id 0x0000, flags DONT_FRAGMENT
>>   TCP: 82 -> 60818
>>     seq. 0xcbbfa586 ack 0x36bb48c6
>>     flags 0x12 SYN ACK, tcp header: 40 bytes
>>     window 28960, checksum 0xab2b
>> 00:11:26:605758: VirtualFunctionEthernet3/10/1-tx
>>   VirtualFunctionEthernet3/10/1 tx queue 0
>>   buffer 0x23e5a0: current data 0, length 74, free-list 0, clone-count 0, 
>> totlen-nifb 0, trace 0x0
>>                    l2-hdr-offset 0 l3-hdr-offset 14
>>   PKT MBUF: port 65535, nb_segs 1, pkt_len 74
>>     buf_len 2176, data_len 74, ol_flags 0x0, data_off 128, phys_addr 
>> 0xe7996880
>>     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: da:78:bd:63:4e:f7 -> ac:1f:6b:17:f3:79
>>   TCP: 10.0.1.1 -> 172.18.60.74
>>     tos 0x00, ttl 63, length 60, checksum 0x485f
>>     fragment id 0x0000, flags DONT_FRAGMENT
>>   TCP: 82 -> 60818
>>     seq. 0xcbbfa586 ack 0x36bb48c6
>>     flags 0x12 SYN ACK, tcp header: 40 bytes
>>     window 28960, checksum 0xab2b
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> 
>> View/Reply Online (#11999): https://lists.fd.io/g/vpp-dev/message/11999
>> Mute This Topic: https://lists.fd.io/mt/29534956/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]
>> -=-=-=-=-=-=-=-=-=-=-=-
> 
> -- 
> Damjan
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#12012): https://lists.fd.io/g/vpp-dev/message/12012
Mute This Topic: https://lists.fd.io/mt/29534956/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