[vpp-dev] unexpected 65535 rx packets on vhost-user interface

2018-03-15 Thread wuxp
Hi,all

i got unexpected 65535 packets when reconnect vhost-user interface.
how to repeat:
step 1: start vpp ,create a vhost (as client) and up, start a vm with previous 
vhost socket, send a packet (i use arping -c 1), then vpp will got 1 rx packet. 
it is OK.
step2:  restart vpp ,create same vhost (as client) and up, vpp got *65535* rx 
packets.it's should not happen.(no one send any packet from vm),it's looks like 
the packet in step 1 got repeated 65535 times after reconnect.but the packet is 
droped in step 1.

i am using stable 18.01.1 release,centos 7.4,qemu-kvm-ev-2.9.0, vpp rpm package 
fetch from http://nexus.fd.io/
(this is not same as qemu vhost reconnect problem mentioned in mail-lists,vhost 
reconnect is ok,see show vhost in full log.)

FULL LOG:  (please skip drop conter,because it should be droped in this simple 
config)

=First  run===
/usr/bin/vpp unix { interactive cli-listen /run/vpp/cli.sock gid 0  } plugins 
{plugin dpdk_plugin.so {disable}}

vpp# create vhost socket /tmp/a.sock
VirtualEthernet0/0/0
vpp# set int state VirtualEthernet0/0/0 up
vpp# show int
  Name   Idx   State  Counter  
Count
VirtualEthernet0/0/0  1 up  
local0    0    down 

> 
> then,in another session start qemu connect vhost socket /tmp/a.sock.
> #ip link set eth0 up
> #ip a add 192.168.3.2/24 dev eth0
> #arping -I eth0 -c 1 192.168.3.3
> ARPING 192.168.3.3
> Timeout
> 

 vpp# show int
  Name   Idx   State  Counter  
Count
VirtualEthernet0/0/0  1 up  *rx packets 
    1*
 rx bytes   
   42
 drops  
    1
local0    0    down 
vpp# quit
 1 rx packet as expected .but keep vm guest running,and restart vpp.

=Second  run===
/usr/bin/vpp unix { interactive cli-listen /run/vpp/cli.sock gid 0  } plugins 
{plugin dpdk_plugin.so {disable}}
vpp# trace add vhost-user-input 10
vpp# create vhost socket /tmp/a.sock
VirtualEthernet0/0/0
vpp# show int
  Name   Idx   State  Counter  
Count
VirtualEthernet0/0/0  1    down 
local0    0    down 
vpp# set int state VirtualEthernet0/0/0 up
vpp# show int
  Name   Idx   State  Counter  
Count
VirtualEthernet0/0/0  1 up  
local0    0    down 
vpp# show int
  Name   Idx   State  Counter  
Count
VirtualEthernet0/0/0  1 up  *rx packets 
65535*
 rx bytes 
2752470
 drops  
65535
local0    0    down 
vpp#
vpp# show errors
   Count    Node  Reason
 65535    arp-input   Interface is not IP enabled

^^^ GOT 65535 packets,

vpp# show version
vpp v18.01.1-21~gfb5148b~b79 built by root on fe2c693246fb at Wed Mar 14 
22:42:25 UTC 2018
vpp# show vhost
Virtio vhost-user interfaces
Global:
  coalesce frames 32 time 1e-3
  number of rx virtqueues in interrupt mode: 0
Interface: VirtualEthernet0/0/0 (ifindex 1)
virtio_net_hdr_sz 12
 features mask (0x):
 features (0x150208000):
   VIRTIO_NET_F_MRG_RXBUF (15)
   VIRTIO_NET_F_GUEST_ANNOUNCE (21)
   VIRTIO_F_INDIRECT_DESC (28)
   VHOST_USER_F_PROTOCOL_FEATURES (30)
   VIRTIO_F_VERSION_1 (32)
  protocol features (0x3)
   VHOST_USER_PROTOCOL_F_MQ (0)
   VHOST_USER_PROTOCOL_F_LOG_SHMFD (1)

 socket filename /tmp/a.sock type client errno "Success"

 rx placement:
   thread 0 on vring 1, polling
 tx placement: lock-free
   thread 0 on vring 0

 Memory regions (total 2)
 region fd    guest_phys_addr    memory_size    userspace_addr 
mmap_offset    mmap_addr
 == = == == == 
== ==
  0 10    0x 0x000a 0x7f3e4100 
0x 0x2cc0
  1 11    0x000c 0x1ff4 0x7f3e410c 
0x000c 0x2cec

 Virtqueue 0 (TX)
  qsz 256 last_avail_idx 0 last_used_idx 0
  avail.flags 0 avail.idx 256 used.flags 1 used.idx 0
  kickfd 12 callfd 13 errfd -1

 Virtqueue 1 (RX)
  qsz 256 last_avail_idx 2 last_used_idx 2
  avail.flags 1 avail.idx 2 used.flags 1 used.idx 2
  kickfd 8 callfd 14 errfd -1

vpp#

^^if quit and run vpp third time,it work as expect(dont get any packet)
=Third  run===
vpp# create vhost 

Re: [vpp-dev] unexpected 65535 rx packets on vhost-user interface

2018-03-15 Thread steven luong
Wuxp,

The first thing is to validate your claim that nothing sent from the VM when 
VPP is restarted. Start tcpdump and watch nothing is sent from the VM. I assume 
it happens all the times as supposed to once in a blue moon.

If that is validated, I’d like to see your qemu startup command to see if I can 
recreate it myself.

Did you say your host is CentOS 7.4 or your VM is CentOS 7.4 or both?

Steven

From:  on behalf of "w...@anchnet.com" 
Date: Thursday, March 15, 2018 at 9:27 AM
To: "vpp-dev@lists.fd.io" 
Subject: Re: [vpp-dev] unexpected 65535 rx packets on vhost-user interface

TRACE for first run
vpp# trace add vhost-user-input 10
vpp# create vhost socket /tmp/a.sock
VirtualEthernet0/0/0
vpp# set int state VirtualEthernet0/0/0 up
vpp# show int
  Name   Idx   State  Counter  Count
VirtualEthernet0/0/0  1 up   rx packets 
1
 rx bytes   
   42
 drops  
1
local00down
vpp# show trace
--- Start of thread 0 vpp_main ---
Packet 1

00:01:29:986952: vhost-user-input
 VirtualEthernet0/0/0 queue 0
   virtio flags:
SINGLE_DESC Single descriptor packet
   virtio_net_hdr first_desc_len 54
 flags 0x00 gso_type 0
 num_buff 0
00:01:29:987327: ethernet-input
  ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
00:01:29:987383: arp-input
  request, type ethernet/IP4, address size 6/4
  52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
00:01:29:987408: error-drop
  arp-input: Interface is not IP enabled


TRACE for second run
vpp# trace add vhost-user-input 10
vpp# create vhost socket /tmp/a.sock
VirtualEthernet0/0/0
vpp# set int state VirtualEthernet0/0/0 up
vpp# show int
  Name   Idx   State  Counter  Count
VirtualEthernet0/0/0  1 up   rx packets 
65535
 rx bytes 
2752470
 drops  
65535
local00down
vpp# show trace
--- Start of thread 0 vpp_main ---
Packet 1

00:00:25:993064: vhost-user-input
 VirtualEthernet0/0/0 queue 0
   virtio flags:
SINGLE_DESC Single descriptor packet
   virtio_net_hdr first_desc_len 54
 flags 0x00 gso_type 0
 num_buff 0
00:00:25:993541: ethernet-input
  ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
00:00:25:993589: arp-input
  request, type ethernet/IP4, address size 6/4
  52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
00:00:25:993609: error-drop
  arp-input: Interface is not IP enabled

Packet 2

00:00:25:993064: vhost-user-input
 VirtualEthernet0/0/0 queue 0
   virtio flags:
SINGLE_DESC Single descriptor packet
   virtio_net_hdr first_desc_len 54
 flags 0x00 gso_type 0
 num_buff 0
00:00:25:993541: ethernet-input
  ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
00:00:25:993589: arp-input
  request, type ethernet/IP4, address size 6/4
  52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
00:00:25:993609: error-drop
  arp-input: Interface is not IP enabled

Packet 3

00:00:25:993064: vhost-user-input
 VirtualEthernet0/0/0 queue 0
   virtio flags:
SINGLE_DESC Single descriptor packet
   virtio_net_hdr first_desc_len 54
 flags 0x00 gso_type 0
 num_buff 0
00:00:25:993541: ethernet-input
  ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
00:00:25:993589: arp-input
  request, type ethernet/IP4, address size 6/4
  52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
00:00:25:993609: error-drop
  arp-input: Interface is not IP enabled

Packet 4

00:00:25:993064: vhost-user-input
 VirtualEthernet0/0/0 queue 0
   virtio flags:
SINGLE_DESC Single descriptor packet
   virtio_net_hdr first_desc_len 54
 flags 0x00 gso_type 0
 num_buff 0
00:00:25:993541: ethernet-input
  ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
00:00:25:993589: arp-input
  request, type ethernet/IP4, address size 6/4
  52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
00:00:25:993609: error-drop
  arp-input: Interface is not IP enabled

Packet 5

00:00:25:993064: vhost-user-input
 VirtualEthernet0/0/0 queue 0
   virtio flags:
SINGLE_DESC Single descriptor packet
   virtio_net_hdr first_desc_len 54
 flags 0x00 gso_type 0
 num_buff 0
00:00:25:993541: ethernet-input
  ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
00:00:25:993589: arp-input
  request, type ethernet/IP4, address size 6/4
  52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
00:00:25:993609: error-drop
  arp-input: Interface is not IP enabled

Packet 6

00:00:25:993064: vhost-user-input
 

Re: [vpp-dev] dpdk drivers

2018-03-15 Thread Burt Silverman
Maybe you need to do some visual inspection during the build to check that
what you think is being built is indeed being built and linked. Possibly
you might

[V=1] make build-release > build.log 2>&1

and look in build.log.

Also manually examine timestamps on relevant files along with that. Until
you know for sure what works and what does not.

My build does not generate new kernel modules; I defer to someone who knows
more about this topic.

Burt

On Thu, Mar 15, 2018 at 6:34 AM, xulang  wrote:

> Hi,
> I  changed  DPDK_BUILD_DIR?= $(CURDIR)/dpdk-17.02 and the
> file  "rte_eth_bond_pmd.c" under this folder.
> I also changed dpdk Makefile like this:
> $(B)/.extract.ok: $(B)/.download.ok
> #@echo --- extracting $(DPDK_TARBALL) ---
> #@tar --directory $(B) --extract --file $(CURDIR)/$(DPDK_TARBALL)
>#@cp ./dpdk-17.02/drivers/net/bonding/rte_eth_bond_pmd.c
> ./_build/dpdk-17.02/drivers/net/bonding/
>
> Then I insert the new igb_uio.ko, but it still does not work.
> The compile procedure of VPP and DPDK are independent from each other, am
> I right?
> I hope to hearing from you.
>
>
> Regards,
> Xulang
>
>
>
>
>
> 
>
>


Re: [vpp-dev] how to add a library to plugin?

2018-03-15 Thread Sara Gittlin
I had the same issue yesterday see Dave answer. But my lib was .so not
static.
Just add to your plugin.am xxx_plugin_am_LIBADD =-lyourlib

בתאריך יום ה׳, 15 במרץ 2018, 17:32, מאת lin huang ‏:

> Hi there,
>
>  I want to know how to add a new static library to compile with a
> specific plugin source code into a .so file? Is there a guidance?
>
>
>
>
>
> xxx_plugin/good.c
>
> xxx_plugin/bana.c comlile è   xxx_plugin.so
>
> xxx_plugin/app.a
>
>
>
> Thank you!!!
> 
>


Re: [vpp-dev] Ccache vs VPPAPIGEN

2018-03-15 Thread Jon Loeliger
On Thu, Mar 15, 2018 at 2:00 PM, Damjan Marion 
wrote:

>
> Lot of changes happened in this area in last 48 hours. There is no
> bootstrap step needed anymore.
>
> Do you still see issues?
>

Damjan,

I believe your changes have fixed things.

Thanks!

jdl


Re: [vpp-dev] make TEST=test_ip6 test failing on multiple machines, when NOT run as root.

2018-03-15 Thread Jon Loeliger
On Thu, Mar 15, 2018 at 1:54 PM, Damjan Marion 
wrote:

>
> Should be fixed now, issue was happening when VPP was allocating buffer
> memory from 4K pages (running as non-root).
>


Damjan,

It has gotten better, but I still see these:

==
PAPI Message parsing Test Case
==
New compound type with array
 ERROR [ temp dir used by test case:
/tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
15:09:04,318 [Errno 17] File exists
Add new types
ERROR [ temp dir used by test case:
/tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
Add new types 2  OK
15:09:05,997 [Errno 17] File exists
Add new message object
 ERROR [ temp dir used by test case:
/tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
15:09:06,908 [Errno 17] File exists
New message with array
 ERROR [ temp dir used by test case:
/tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
Argument nameOK
VLA with aribtrary length field placementOK
15:09:09,451 [Errno 17] File exists
Message to byte encoding
 ERROR [ temp dir used by test case:
/tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
15:09:10,370 [Errno 17] File exists
Nested array type
ERROR [ temp dir used by test case:
/tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
Old style VLA array  OK
15:09:12,125 [Errno 17] File exists
Old VLA compound type
ERROR [ temp dir used by test case:
/tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]


MPLS IPv4 Multicast Tail
 ERROR [ temp dir used by test case: /tmp/vpp-unittest-TestMPLS-bWDeO0 ]


Later, the output also has these:


==
ERROR: New compound type with array
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line
281, in test_add_new_compound_type_with_array
msglist.add_type(p[0], p[1:])
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 590, in add_type
typeonly=True)
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
raise ValueError('Duplicate message name: ' + name)
ValueError: Duplicate message name: vl_api_ip4_fib_counter_t

==
ERROR: Add new types
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line
167, in test_add_new_types
msglist.add_type(p[0], p[1:])
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 590, in add_type
typeonly=True)
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
raise ValueError('Duplicate message name: ' + name)
ValueError: Duplicate message name: vl_api_ip4_fib_counter_t

==
ERROR: Add new message object
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 71,
in test_adding_new_message_object
msgdef = msglist.add_message(p[0], p[1:])
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
raise ValueError('Duplicate message name: ' + name)
ValueError: Duplicate message name: show_version

==
ERROR: New message with array
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 87,
in test_adding_new_message_object_with_array
msglist.add_message(p[0], p[1:])
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
raise ValueError('Duplicate message name: ' + name)
ValueError: Duplicate message name: ip_address_details

==
ERROR: Message to byte encoding
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 95,
in test_message_to_bytes
msgdef = msglist.add_message(p[0], p[1:])
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
raise ValueError('Duplicate message name: ' + name)
ValueError: Duplicate message name: show_version

==
ERROR: Nested array type

Re: [vpp-dev] order of running 2 plugins

2018-03-15 Thread Damjan Marion

There is also inline function vnet_feature_next() and 
vnet_feature_next_with_data() which hides stuff Dave explained into oneliner...


> On 13 Mar 2018, at 14:59, Dave Barach  wrote:
> 
> The feature arc infra handles dispatching packets from feature to feature, 
> depending on the set of enabled features. 
> 
> It's fine to define static arcs to e.g. error-drop, but there's no need to 
> manually dispatch packets to the next feature node. Use 
> vnet_get_config_data(...) to set next0 as shown below:
> 
> Top of the node dispatch function:
> 
>  u8 arc_index = vnet_feat_arc_.feature_arc_index;
>  vnet_feature_config_main_t *cm = >feature_config_mains[arc_index];
> 
> In single/dual/quad loops, per packet:
> 
>  vnet_get_config_data (>config_main, >current_config_index, , 0 
> /* sizeof (c0[0]) */ );
> 
> There are plenty of examples. 
> 
> HTH... Dave
> 
> -Original Message-
> From: vpp-dev@lists.fd.io  On Behalf Of Sara Gittlin
> Sent: Tuesday, March 13, 2018 9:44 AM
> To: vpp-dev@lists.fd.io
> Subject: [vpp-dev] order of running 2 plugins
> 
> Hi,
> i've implemented 2 plugins plgA and plgB
> 
> 1. plgA is running immediately after 'device-input' node 2. plgB should run 
> after plgA 3. interface-output should run after plgB
> 
> i set this these for plgA and plgB
> VNET_FEATURE_INIT (plgA, static) =
> {
>  .arc_name = "device-input",
>  .node_name = "plgA",
>  .runs_before = VNET_FEATURES ("plgB"), };
> 
> VNET_FEATURE_INIT (plgB, static) =
> {
>  .arc_name = "plgA-input",
>  .node_name = "plgB",
>  .runs_before = VNET_FEATURES ("ethernet-input"), };
> 
> 
> and i set the next0 accodingly in the nodes for example in plgA
> next0 = AMETHYST_POLICER_NEXT_plgB_INPUT in plgB i set
> next0 = AMETHYST_POLICER_NEXT_ETHERNET_INPUT
> 
> are these settings OK ? is there any other setting required ?
> 
> Thank you in advance
> -Sara
> 
> 
> 
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#8564): https://lists.fd.io/g/vpp-dev/message/8564
View All Messages In Topic (3): https://lists.fd.io/g/vpp-dev/topic/14532428
Mute This Topic: https://lists.fd.io/mt/14532428/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



Re: [vpp-dev] worker_thread creation #vpp

2018-03-15 Thread Damjan Marion
Currently we don't support dynamic addition/deletion of the worker threads.
It can be doable, but will require some under-the-hood work

> On 7 Mar 2018, at 18:53, m...@ciena.com wrote:
> 
> Looking to confirm worker_thread creation/deletion capabilities. 
> ./src/vpp/conf/startup.conf descriptions suggest we must define the number of 
> worker_threads up front. I am looking to understand if that is correct, or if 
> we can add/remove worker_threads from a live system over time as workloads 
> come and go.
> -MikeB
> 



Re: [vpp-dev] make TEST=test_ip6 test failing on multiple machines, when NOT run as root.

2018-03-15 Thread Damjan Marion

Should be fixed now, issue was happening when VPP was allocating buffer memory 
from 4K pages (running as non-root).


> On 13 Mar 2018, at 15:24, Jon Loeliger  wrote:
> 
> On Tue, Mar 13, 2018 at 5:47 AM, Klement Sekera  > wrote:
> I would say that this should be worth the extra effort just to have the same 
> conditions. Otherwise the verify job does something different than `make 
> test` on your box and that could be confusing.
> 
> Thanks,
> Klement
> 
> These days, 'make test' on my box(*) running as not-root fails many tests.
> I've not looked into it, but here are some.  I'm going with duplicate API
> message registration?
> 
> HTH,
> jdl
> 
> (*) -- CentOS 7.4.1708
> 
> 
> 
> PAPI Message parsing Test Case
> ==
> New compound type with array 
> ERROR [ temp dir used by test case: 
> /tmp/vpp-unittest-TestPAPIMessageParsing-f22YXN ]
> 13:33:25,146 [Errno 17] File exists
> 
> 
> 
> ERROR: New compound type with array
> --
> Traceback (most recent call last):
>   File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 281, 
> in test_add_new_compound_type_with_array
> msglist.add_type(p[0], p[1:])
>   File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 590, in add_type
> typeonly=True)
>   File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
> raise ValueError('Duplicate message name: ' + name)
> ValueError: Duplicate message name: vl_api_ip4_fib_counter_t
> 
> ==
> ERROR: IPv6 FIB test
> --
> Traceback (most recent call last):
>   File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_ip6.py", line 343, 
> in test_fib
> pkts = self.pg0.get_capture()
>   File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/vpp_pg_interface.py", 
> line 242, in get_capture
> raise Exception("No packets captured on %s" % name)
> Exception: No packets captured on pg0
> 
> 
> ERROR: Add new message object
> --
> Traceback (most recent call last):
>   File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 71, 
> in test_adding_new_message_object
> msgdef = msglist.add_message(p[0], p[1:])
>   File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
> raise ValueError('Duplicate message name: ' + name)
> ValueError: Duplicate message name: show_version
> 
> 
> ERROR: New message with array
> --
> Traceback (most recent call last):
>   File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 87, 
> in test_adding_new_message_object_with_array
> msglist.add_message(p[0], p[1:])
>   File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
> raise ValueError('Duplicate message name: ' + name)
> ValueError: Duplicate message name: ip_address_details
> 
> 



Re: [vpp-dev] Ccache vs VPPAPIGEN

2018-03-15 Thread Damjan Marion

Lot of changes happened in this area in last 48 hours. There is no bootstrap 
step needed anymore.

Do you still see issues?


> On 15 Mar 2018, at 00:49, Jon Loeliger  wrote:
> 
> Good Evening Sports Fans,
> 
> Have we got a match for you tonight!
> 
> In this corner, ccache.  Loved for it speed and hackery, hated for
> its invasive corruptibility.
> 
> In the other corner, we have vppapigen, loved tool of the single-source
> definitions for all things yet hated as the monster that will not die!
> 
> Tonight we bring them together in the top-level Makefile, in a clause
> that might leave a few, myself included, mystified:
> 
> ifeq ("$(wildcard /usr/bin/ccache )","")
> @echo "WARNING: Please install ccache AYEC and re-run this script"
> else
> @rm -rf $(BR)/tools/ccache-bin
> @mkdir -p $(BR)/tools/ccache-bin
> @ln -s /usr/bin/ccache $(BR)/tools/ccache-bin/gcc
> @ln -s /usr/bin/ccache $(BR)/tools/ccache-bin/g++
> @ln -s /usr/bin/ccache $(BR)/tools/ccache-bin/clang
> @ln -s /usr/bin/ccache $(BR)/tools/ccache-bin/clang++
> mkdir -p $(BR)/tools/bin
> rm -f $(BR)/tools/bin/vppapigen
> ln -s $(WS_ROOT)/src/tools/vppapigen/vppapigen \
>$(BR)/tools/bin/vppapigen
> ls -lsa $(BR)/tools/bin
> endif
> @touch $@
> 
> You might recognize that as part of the $(BR)/.bootstrap.ok target!
> It is!  You could win!
> 
> But first, let's see what happens when ccache is NOt installed on the
> build machine!  Yep, you get that warning:
> 
> @echo "WARNING: Please install ccache AYEC and re-run this script"
> 
> Naturally, that is lost way, way, back at the beginning of the scroll-back.  
> Twenty
> minutes of scroll-back.  Unless  Yes, in just under 2 minutes, the build 
> fails!
> Quizically like this:
> 
>   APIGEN   vlibmemory/memclnt.api.h
>   JSON API vlibmemory/memclnt.api.json
> /bin/sh: line 2: vppapigen: command not found
> /bin/sh: line 2: vppapigen: command not found
> 
> So, yeah, installing ccache clears all that up.
> 
> And since using vppapigen is sort of necessary for the
> whole build here, using ccache is not really an optional
> build-time dependency anymore.  If you're cools with that,
> I'm cool with that, but we should list it as a build-time
> requirement for all build hosts including CentOS:
> 
> $ git grep ccache Makefile
> Makefile:CCACHE_DIR?=$(BR)/.ccache
> Makefile:DEB_DEPENDS  = curl build-essential autoconf automake ccache
> Makefile:RPM_SUSE_BUILDTOOLS_DEPS = autoconf automake ccache check-devel 
> chrpath
> 
> If no one beats me to it, I might submit a patch to
> help the situation.
> 
> So it's a tie!
> 
> jdl
> 
> 
> 
> 



Re: [vpp-dev] make TEST=test_ip6 test failing on multiple machines, when NOT run as root.

2018-03-15 Thread Burt Silverman
I am getting those File Exists errors on Debian Buster Beta, and worse luck
on Ubuntu 17.10 (other errors); but CentOS worked fine. All with tip of
master branch code.

Burt

On Thu, Mar 15, 2018 at 6:36 PM, Jon Loeliger  wrote:

> On Thu, Mar 15, 2018 at 4:45 PM, Dave Barach  wrote:
>
>> +1. Definitely try “make test” as root, and let folks know how it goes…
>>
>>
>>
>> *From:* vpp-dev@lists.fd.io  *On Behalf Of *Damjan
>> Marion
>> *Sent:* Thursday, March 15, 2018 5:24 PM
>> *To:* vpp-dev@lists.fd.io
>> *Cc:* vpp-dev@lists.fd.io
>> *Subject:* Re: [vpp-dev] make TEST=test_ip6 test failing on multiple
>> machines, when NOT run as root.
>>
>>
>>
>>
>>
>> OK, this doesn't look like related  to my issue. does it work with sudo?
>>
>
> So, yes.  Even sudone, these remaining errors persist.
>
> Not sure what is at work here yet.
>
> jdl
>
> 
>
>


Re: [vpp-dev] make TEST=test_ip6 test failing on multiple machines, when NOT run as root.

2018-03-15 Thread Jon Loeliger
On Thu, Mar 15, 2018 at 4:45 PM, Dave Barach  wrote:

> +1. Definitely try “make test” as root, and let folks know how it goes…
>
>
>
> *From:* vpp-dev@lists.fd.io  *On Behalf Of *Damjan
> Marion
> *Sent:* Thursday, March 15, 2018 5:24 PM
> *To:* vpp-dev@lists.fd.io
> *Cc:* vpp-dev@lists.fd.io
> *Subject:* Re: [vpp-dev] make TEST=test_ip6 test failing on multiple
> machines, when NOT run as root.
>
>
>
>
>
> OK, this doesn't look like related  to my issue. does it work with sudo?
>

So, yes.  Even sudone, these remaining errors persist.

Not sure what is at work here yet.

jdl


[vpp-dev] FD.io minisummit @ Kubecon EU May 2-4 Copenhagen CFP opens

2018-03-15 Thread Edward Warnicke
FD.io will be holding a minisummit @Kubecon EU May 2-4 in Copenhagen.
Please submit your talks at the CFP here:

https://fd.io/event/fd-io-mini-summit-at-kubecon-cloudnativecon-europe/

Ed


Re: [vpp-dev] make TEST=test_ip6 test failing on multiple machines, when NOT run as root.

2018-03-15 Thread Dave Barach
+1. Definitely try "make test" as root, and let folks know how it goes...

From: vpp-dev@lists.fd.io  On Behalf Of Damjan Marion
Sent: Thursday, March 15, 2018 5:24 PM
To: vpp-dev@lists.fd.io
Cc: vpp-dev@lists.fd.io
Subject: Re: [vpp-dev] make TEST=test_ip6 test failing on multiple machines, 
when NOT run as root.


OK, this doesn't look like related  to my issue. does it work with sudo?


On 15 Mar 2018, at 21:58, Jon Loeliger 
> wrote:

On Thu, Mar 15, 2018 at 1:54 PM, Damjan Marion 
> wrote:

Should be fixed now, issue was happening when VPP was allocating buffer memory 
from 4K pages (running as non-root).


Damjan,

It has gotten better, but I still see these:

==
PAPI Message parsing Test Case
==
New compound type with array ERROR 
[ temp dir used by test case: /tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
15:09:04,318 [Errno 17] File exists
Add new typesERROR 
[ temp dir used by test case: /tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
Add new types 2  OK
15:09:05,997 [Errno 17] File exists
Add new message object   ERROR 
[ temp dir used by test case: /tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
15:09:06,908 [Errno 17] File exists
New message with array   ERROR 
[ temp dir used by test case: /tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
Argument nameOK
VLA with aribtrary length field placementOK
15:09:09,451 [Errno 17] File exists
Message to byte encoding ERROR 
[ temp dir used by test case: /tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
15:09:10,370 [Errno 17] File exists
Nested array typeERROR 
[ temp dir used by test case: /tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]
Old style VLA array  OK
15:09:12,125 [Errno 17] File exists
Old VLA compound typeERROR 
[ temp dir used by test case: /tmp/vpp-unittest-TestPAPIMessageParsing-Kl0Zr3 ]


MPLS IPv4 Multicast Tail ERROR 
[ temp dir used by test case: /tmp/vpp-unittest-TestMPLS-bWDeO0 ]


Later, the output also has these:


==
ERROR: New compound type with array
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 281, in 
test_add_new_compound_type_with_array
msglist.add_type(p[0], p[1:])
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 590, in add_type
typeonly=True)
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
raise ValueError('Duplicate message name: ' + name)
ValueError: Duplicate message name: vl_api_ip4_fib_counter_t

==
ERROR: Add new types
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 167, in 
test_add_new_types
msglist.add_type(p[0], p[1:])
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 590, in add_type
typeonly=True)
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
raise ValueError('Duplicate message name: ' + name)
ValueError: Duplicate message name: vl_api_ip4_fib_counter_t

==
ERROR: Add new message object
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 71, in 
test_adding_new_message_object
msgdef = msglist.add_message(p[0], p[1:])
  File "build/bdist.linux-x86_64/egg/vpp_papi.py", line 545, in add_message
raise ValueError('Duplicate message name: ' + name)
ValueError: Duplicate message name: show_version

==
ERROR: New message with array
--
Traceback (most recent call last):
  File "/home/jdl/workspace/tnsr-pkgs/work/vpp/test/test_papi.py", line 87, in 

Re: [vpp-dev] unexpected 65535 rx packets on vhost-user interface

2018-03-15 Thread 伍旭鹏 <w...@anchnet.com>
Steven,
 i had validated no packet send from guest via tshark (like tcpdump).


guest is ubuntu 16.04


qemu command : ( connect the guest console via vncviewer )




/usr/libexec/qemu-kvm -enable-kvm -m 512 -cpu host -vga cirrus -vnc 0.0.0.0:0 
-drive file="ubuntu.qcow2",if=virtio,aio=threads -chardev 
socket,id=char1,path=/tmp/a.sock,server -netdev 
type=vhost-user,id=mynet1,chardev=char1,vhostforce -device 
virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1 -object 
memory-backend-file,id=mem,size=512M,mem-path=/dev/hugepages,share=on -numa 
node,memdev=mem -mem-prealloc 






thanks,
wuxp
 
-- Original --
From:  "Steven Luong (sluong)";
Date:  Fri, Mar 16, 2018 00:56 AM
To:  "w...@anchnet.com"; 
"vpp-dev@lists.fd.io"; 

Subject:  Re: [vpp-dev] unexpected 65535 rx packets on vhost-user interface

 
  
Wuxp,
 
 
 
The first thing is to validate your claim that nothing sent from the VM when 
VPP is restarted. Start tcpdump and watch nothing is sent from the VM. I assume 
it happens all the times as supposed to once in a blue moon.
 
 
 
If that is validated, I’d like to see your qemu startup command to see if I can 
recreate it myself.
 
 
 
Did you say your host is CentOS 7.4 or your VM is CentOS 7.4 or both?
 
 
 
Steven
 
 
  
From:  on behalf of "w...@anchnet.com" 
 Date: Thursday, March 15, 2018 at 9:27 AM
 To: "vpp-dev@lists.fd.io" 
 Subject: Re: [vpp-dev] unexpected 65535 rx packets on vhost-user interface
 
  
 
 
 
TRACE for first run
 vpp# trace add vhost-user-input 10
 vpp# create vhost socket /tmp/a.sock
 VirtualEthernet0/0/0
 vpp# set int state VirtualEthernet0/0/0 up
 vpp# show int
   Name   Idx   State  Counter  
Count 
 VirtualEthernet0/0/0  1 up   rx packets
 1
  rx bytes  
42
  drops 
 1
 local00down  
 vpp# show trace
 --- Start of thread 0 vpp_main ---
 Packet 1
 
 00:01:29:986952: vhost-user-input
  VirtualEthernet0/0/0 queue 0
virtio flags:
 SINGLE_DESC Single descriptor packet
virtio_net_hdr first_desc_len 54
  flags 0x00 gso_type 0
  num_buff 0
 00:01:29:987327: ethernet-input
   ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
 00:01:29:987383: arp-input
   request, type ethernet/IP4, address size 6/4
   52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
 00:01:29:987408: error-drop
   arp-input: Interface is not IP enabled
 
 
 TRACE for second run
 vpp# trace add vhost-user-input 10
 vpp# create vhost socket /tmp/a.sock
 VirtualEthernet0/0/0
 vpp# set int state VirtualEthernet0/0/0 up
 vpp# show int
   Name   Idx   State  Counter  
Count 
 VirtualEthernet0/0/0  1 up   rx packets
 65535
  rx bytes 
2752470
  drops 
 65535
 local00down  
 vpp# show trace
 --- Start of thread 0 vpp_main ---
 Packet 1
 
 00:00:25:993064: vhost-user-input
  VirtualEthernet0/0/0 queue 0
virtio flags:
 SINGLE_DESC Single descriptor packet
virtio_net_hdr first_desc_len 54
  flags 0x00 gso_type 0
  num_buff 0
 00:00:25:993541: ethernet-input
   ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
 00:00:25:993589: arp-input
   request, type ethernet/IP4, address size 6/4
   52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
 00:00:25:993609: error-drop
   arp-input: Interface is not IP enabled
 
 Packet 2
 
 00:00:25:993064: vhost-user-input
  VirtualEthernet0/0/0 queue 0
virtio flags:
 SINGLE_DESC Single descriptor packet
virtio_net_hdr first_desc_len 54
  flags 0x00 gso_type 0
  num_buff 0
 00:00:25:993541: ethernet-input
   ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
 00:00:25:993589: arp-input
   request, type ethernet/IP4, address size 6/4
   52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
 00:00:25:993609: error-drop
   arp-input: Interface is not IP enabled
 
 Packet 3
 
 00:00:25:993064: vhost-user-input
  VirtualEthernet0/0/0 queue 0
virtio flags:
 SINGLE_DESC Single descriptor packet
virtio_net_hdr first_desc_len 54
  flags 0x00 gso_type 0
  num_buff 0
 00:00:25:993541: ethernet-input
   ARP: 52:54:00:98:01:01 -> ff:ff:ff:ff:ff:ff
 00:00:25:993589: arp-input
   request, type ethernet/IP4, address size 6/4
   52:54:00:98:01:01/192.168.3.2 -> 00:00:00:00:00:00/192.168.3.3
 00:00:25:993609: error-drop
   arp-input: Interface is 

Re: [vpp-dev] LOG and ERROR handlers

2018-03-15 Thread Sara Gittlin
Thank you Marco
That's what I wanted

- Sara

On Thu, Mar 15, 2018 at 11:35 AM, Marco Varlese  wrote:
> On Thu, 2018-03-15 at 10:33 +0200, Sara Gittlin wrote:
>> Thank you Keith
>> I mean the  error/log macros that write to the log files
> Maybe you're looking for clib_warning() ?
>>
>> Regards
>> -Sara
>>
>> On Wed, Mar 14, 2018 at 10:30 PM, Keith Burns  wrote:
>> > If using default startup.conf found;
>> > src/vpp/conf/startup.conf
>> > it is /var/log/vpp/vpp.log
>> >
>> >
>> > On Wed, Mar 14, 2018 at 9:27 AM Sara Gittlin  
>> > wrote:
>> > >
>> > > Hello  All,
>> > >
>> > > what are the VPP  standard log and error  handlers ?
>> > >
>> > > Thank you
>> > > -Sara
>> > >
>> > >
>> > >
>>
>>
>>
> --
> Marco V
>
> SUSE LINUX GmbH | GF: Felix Imendörffer, Jane Smithard, Graham Norton
> HRB 21284 (AG Nürnberg) Maxfeldstr. 5, D-90409, Nürnberg
>
> 
>

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#8552): https://lists.fd.io/g/vpp-dev/message/8552
View All Messages In Topic (5): https://lists.fd.io/g/vpp-dev/topic/14665458
Mute This Topic: https://lists.fd.io/mt/14665458/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



Re: [vpp-dev] dpdk drivers

2018-03-15 Thread xulang
Hi,
I  changed  DPDK_BUILD_DIR?= $(CURDIR)/dpdk-17.02 and the file  
"rte_eth_bond_pmd.c" under this folder.
I also changed dpdk Makefile like this:
$(B)/.extract.ok: $(B)/.download.ok
#@echo --- extracting $(DPDK_TARBALL) ---
#@tar --directory $(B) --extract --file $(CURDIR)/$(DPDK_TARBALL)
   #@cp ./dpdk-17.02/drivers/net/bonding/rte_eth_bond_pmd.c 
./_build/dpdk-17.02/drivers/net/bonding/


Then I insert the new igb_uio.ko, but it still does not work.
The compile procedure of VPP and DPDK are independent from each other, am I 
right?
I hope to hearing from you.




Regards,
Xulang





[vpp-dev] Interface name to sw-if-index

2018-03-15 Thread Sara Gittlin
Hello
i have a config file being read during init , one of its fileds is if-name.
I need to have sw-if-index given the if-name.
John already answered  how to do that - but i fill lost with the cli
buffers 
i only need a function get-if-index-by-if-name that receives if-name
and returns if-index (the if-index that is shown in the :"show
interface" in the Idx column)

Hohn answer:
"The functions in the area you are interested may be the unformat
functions unformat_vnet_sw_interface(), unformat_vnet_hw_interface()
in src/vnet/interface_format.c used by VPP CLI to get sw_if_index or
hw_if_index from user specified interface name.-John"

Thank you
-Sara

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#8549): https://lists.fd.io/g/vpp-dev/message/8549
View All Messages In Topic (1): https://lists.fd.io/g/vpp-dev/topic/14787612
Mute This Topic: https://lists.fd.io/mt/14787612/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



Re: [vpp-dev] LOG and ERROR handlers

2018-03-15 Thread Sara Gittlin
Thank you Keith
I mean the  error/log macros that write to the log files

Regards
-Sara

On Wed, Mar 14, 2018 at 10:30 PM, Keith Burns  wrote:
> If using default startup.conf found;
> src/vpp/conf/startup.conf
> it is /var/log/vpp/vpp.log
>
>
> On Wed, Mar 14, 2018 at 9:27 AM Sara Gittlin  wrote:
>>
>> Hello  All,
>>
>> what are the VPP  standard log and error  handlers ?
>>
>> Thank you
>> -Sara
>>
>>
>>
> 

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#8550): https://lists.fd.io/g/vpp-dev/message/8550
View All Messages In Topic (3): https://lists.fd.io/g/vpp-dev/topic/14665458
Mute This Topic: https://lists.fd.io/mt/14665458/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



Re: [vpp-dev] LOG and ERROR handlers

2018-03-15 Thread Marco Varlese
On Thu, 2018-03-15 at 10:33 +0200, Sara Gittlin wrote:
> Thank you Keith
> I mean the  error/log macros that write to the log files
Maybe you're looking for clib_warning() ?
> 
> Regards
> -Sara
> 
> On Wed, Mar 14, 2018 at 10:30 PM, Keith Burns  wrote:
> > If using default startup.conf found;
> > src/vpp/conf/startup.conf
> > it is /var/log/vpp/vpp.log
> > 
> > 
> > On Wed, Mar 14, 2018 at 9:27 AM Sara Gittlin  wrote:
> > > 
> > > Hello  All,
> > > 
> > > what are the VPP  standard log and error  handlers ?
> > > 
> > > Thank you
> > > -Sara
> > > 
> > > 
> > > 
> 
> 
> 
-- 
Marco V

SUSE LINUX GmbH | GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg) Maxfeldstr. 5, D-90409, Nürnberg

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#8551): https://lists.fd.io/g/vpp-dev/message/8551
View All Messages In Topic (4): https://lists.fd.io/g/vpp-dev/topic/14665458
Mute This Topic: https://lists.fd.io/mt/14665458/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



[vpp-dev] Interface name to sw-if-index

2018-03-15 Thread Sara Gittlin
I send this again  - hope someone can help

Hello
I need to get sw-if-index from if-name
(the if-index that is shown in the :"show interface" in the Idx column)

John already answered  how to do that - but i fill lost with the cli
buffers 

John's answer:
"The functions in the area you are interested may be the unformat
functions unformat_vnet_sw_interface(), unformat_vnet_hw_interface()
in src/vnet/interface_format.c used by VPP CLI to get sw_if_index or
hw_if_index from user specified interface name.-John"

Thank you
-Sara



-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#8554): https://lists.fd.io/g/vpp-dev/message/8554
View All Messages In Topic (2): https://lists.fd.io/g/vpp-dev/topic/14787612
Mute This Topic: https://lists.fd.io/mt/14787612/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



[vpp-dev] Reminder: 18.04 API freeze is next Wednesday!

2018-03-15 Thread Chris Luke
API freeze next week; get your API-related patches in soon!

https://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_18.04

Milestone

Date

Deliverables

F0

2018-03-21

APIs frozen. Only low-risk changes accepted on main branch.



Cheers,
Chris.


[vpp-dev] how to add a library to plugin?

2018-03-15 Thread lin huang
Hi there,
 I want to know how to add a new static library to compile with a 
specific plugin source code into a .so file? Is there a guidance?


xxx_plugin/good.c
xxx_plugin/bana.c comlile ==>   xxx_plugin.so
xxx_plugin/app.a

Thank you!!!