[vpp-dev] DPDK plugin - port ID and index

2018-08-17 Thread Andrzej Ostruszka
Hello all

I'm new to VPP so please bear with my ignorance in its
architecture/internals/development process :).

I'd like to ask for some change regarding DPDK plugin - to be specific
to differentiate between "device index" (in device table) and "device
id" (the DPDK port ID).  More information about the change is below and
the proposed patch is in the attachment (since I'm not aware yet of the
process to proposed them - if there is any).

The background for the change is as follows: I've developed a logical
PMD for DPDK that is meant to split different type of traffic (read some
"tag") to different "logical" ports while under the hood for actual
transmission a "physical" port is used.  The driver on the RX side takes
care of the finding the correct "logical" port for given tag, stripping
it and passing to the port and on TX side its job is to insert the tag
and pass it to the "physical" port for transmission.  It works with
test-pmd and l2fwd DPDK applications but our customer wishes to use it
also with VPP and here I needed to make some changes which I'd like to
upstream now.

>From the above description you can see that for N logical ports there
are N+1 (at least) actual DPDK ports used.  So the situation is a bit
like "reversed bonding driver" - in bonding PMD the are many "physical"
ports that are grouped to form one "logical" link, and in my case this
is reversed.

I've decided to make use of the new DPDK API "rte_eth_dev_owner_new/set"
(introduced by commit 5b7ba31148a8b and still marked as "experimental")
because this makes much easier for other applications (like VPP) to not
depend on the internals of given PMD - for example I did not have to
touch testpmd and l2fwd apps from DPDK to make them work since they were
already using/compatible with the new API.

This however requires some changes in VPP to make it work.  Previously
you simply assumed that DPDK port IDs start with 0 and assumed 1 to 1
correspondence between index in internal table with DPDK port id.  With
the use of some "internal/owned" DPDK ports this is no longer true so
what I am proposing is to add 'device_id' to 'dpdk_device_t' and make
use of it when passing to RTE functions and use 'RTE_ETH_FOREACH_DEV'
macro instead of plain 'for' loops starting with 0.

The patch in the attachment is what I have used for our customer.  Note
however that this was my first contact with VPP so there might be
something wrong with it or I might have missed some other places that
also need an update.  Also note that since the "ownership" API in DPDK
is still marked as experimental then you'll need to add
"-Wno-deprecated-declarations" to your compilation flags in platform
files (I'm using a separate one so don't have patch for you).

Let me know what you think.

Best regards
Andrzej
>From 0da5ba713a257f166ba4d8f111fa76ce757f4563 Mon Sep 17 00:00:00 2001
From: Andrzej Ostruszka 
Date: Fri, 6 Jul 2018 12:37:12 +0200
Subject: [PATCH] plugins: dpdk: do not use internal index for port id

Some DPDK ports can be used internally and not available to the user
application so one can not assume that index of internal structure is
DPDK port id.
---
 src/plugins/dpdk/device/cli.c   |  8 
 src/plugins/dpdk/device/common.c| 30 +++---
 src/plugins/dpdk/device/device.c| 16 
 src/plugins/dpdk/device/dpdk.h  |  3 ++-
 src/plugins/dpdk/device/dpdk_priv.h |  6 +++---
 src/plugins/dpdk/device/format.c| 22 +++---
 src/plugins/dpdk/device/init.c  | 22 +++---
 src/plugins/dpdk/device/node.c  |  2 +-
 src/plugins/dpdk/hqos/hqos.c| 10 +-
 10 files changed, 66 insertions(+), 65 deletions(-)

diff --git a/src/plugins/dpdk/device/cli.c b/src/plugins/dpdk/device/cli.c
index c9fcea5..0cdb344 100644
--- a/src/plugins/dpdk/device/cli.c
+++ b/src/plugins/dpdk/device/cli.c
@@ -60,7 +60,7 @@ get_hqos (u32 hw_if_index, u32 subport_id, dpdk_device_t ** xd,
   hw = vnet_get_hw_interface (dm->vnet_main, hw_if_index);
   *xd = vec_elt_at_index (dm->devices, hw->dev_instance);
 
-  rte_eth_dev_info_get ((*xd)->device_index, &dev_info);
+  rte_eth_dev_info_get ((*xd)->device_id, &dev_info);
   if (dev_info.pci_dev)
 {/* bonded interface has no pci info */
   vlib_pci_addr_t pci_addr;
@@ -1159,7 +1159,7 @@ set_dpdk_if_hqos_pktfield (vlib_main_t * vm, unformat_input_t * input,
   hw = vnet_get_hw_interface (dm->vnet_main, hw_if_index);
   xd = vec_elt_at_index (dm->devices, hw->dev_instance);
 
-  rte_eth_dev_info_get (xd->device_index, &dev_info);
+  rte_eth_dev_info_get (xd->device_id, &dev_info);
   if (dev_info.pci_dev)
 {/* bonded interface has no pci info */
   vlib_pci_addr_t pci_addr;
@@ -1350,7 +1350,7 @@ show_dpdk_if_hqos (vlib_main_t * vm, unformat_input_t * input,
   hw = vnet_get_hw_interface (dm->vnet_main, hw_if_index);
   xd = vec_elt_at_index (dm->devices, hw->dev_instance);
 
-  rte_eth_dev_info_get (xd->device_index, &dev_info);

[vpp-dev] VPP crashes on multi core

2018-08-17 Thread Mehran Memarnejad
Hi,
In default configuration of vpp on single core, everything seems ok but
when I want to get the most out of my hardware resources and modify vpp
startup config, it crashes at some stages.
Here is some carshes:
1- I set interface's IP and then when I plugged cables in ports, It
suddenly carshes and system needs to be rebooted.

2- once I set up a vpls scenario and I was passing traffics without any
problem but when I plugged out the cable connecting PE to P router while
the traffic was comming, vpp crashed.

In some cases, I use the same configurations but sometimes it crashes and
sometimes it doesn't.

How should I setup VPP to make it use all hardware resources?? I mean how
should I set CPU cores, RAM and etc??

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

View/Reply Online (#10194): https://lists.fd.io/g/vpp-dev/message/10194
Mute This Topic: https://lists.fd.io/mt/24610978/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] LACP link bonding issue

2018-08-17 Thread Aleksander Djuric
Hi Steven,

GDB shows that the vlib_process_get_events function always return ~0, except 
one time at start and lacp_schedule_periodic_timer is never runs after that. 
It's looks the same on both sides.
I have added some debug info. Please look at the log:

### VPP1:9.58 #
 
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:75: BEGIN
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:88: 
partner.state: 0x1, actor.state: 0x7
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:89: 
LACP_START_SLOW_PERIODIC_TIMER
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:75: BEGIN
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:85: 
LACP_START_FAST_PERIODIC_TIMER
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:75: BEGIN
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:88: 
partner.state: 0x1, actor.state: 0x7
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:89: 
LACP_START_SLOW_PERIODIC_TIMER
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:75: BEGIN
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_schedule_periodic_timer:85: 
LACP_START_FAST_PERIODIC_TIMER
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_process:172: LACP_PROCESS_EVENT_START
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_process:169: LACP_PROCESS_TIMEOUT
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_process:169: LACP_PROCESS_TIMEOUT
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_process:169: LACP_PROCESS_TIMEOUT
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_process:169: LACP_PROCESS_TIMEOUT
Aug 17 10:54:45 vpp1 vnet[1588]: lacp_process:169: LACP_PROCESS_TIMEOUT
 
### VPP2:6.155 #
 
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:75: BEGIN
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:88: 
partner.state: 0x1, actor.state: 0x7
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:89: 
LACP_START_SLOW_PERIODIC_TIMER
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:75: BEGIN
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:85: 
LACP_START_FAST_PERIODIC_TIMER
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:75: BEGIN
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:88: 
partner.state: 0x1, actor.state: 0x7
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:89: 
LACP_START_SLOW_PERIODIC_TIMER
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:75: BEGIN
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_schedule_periodic_timer:85: 
LACP_START_FAST_PERIODIC_TIMER
Aug 17 10:55:09 vpp2 vnet[1722]: lacp_process:172: LACP_PROCESS_EVENT_START
Aug 17 10:55:10 vpp2 vnet[1722]: lacp_process:169: LACP_PROCESS_TIMEOUT
Aug 17 10:55:10 vpp2 vnet[1722]: lacp_process:169: LACP_PROCESS_TIMEOUT
Aug 17 10:55:10 vpp2 vnet[1722]: lacp_process:169: LACP_PROCESS_TIMEOUT
Aug 17 10:55:10 vpp2 vnet[1722]: lacp_process:169: LACP_PROCESS_TIMEOUT
Aug 17 10:55:10 vpp2 vnet[1722]: lacp_process:169: LACP_PROCESS_TIMEOUT

Both of the hosts are bare metal. System information:

# uname -a
Linux vpp1 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 
GNU/Linux
# lscpu 
Architecture:  x86_64 
CPU op-mode(s):    32-bit, 64-bit 
Byte Order:    Little Endian 
CPU(s):    8 
On-line CPU(s) list:   0-7 
Thread(s) per core:    2 
Core(s) per socket:    4 
Socket(s): 1 
NUMA node(s):  1 
Vendor ID: GenuineIntel 
CPU family:    6 
Model: 60 
Model name:    Intel(R) Xeon(R) CPU E3-1275 v3 @ 3.50GHz 
Stepping:  3 
CPU MHz:   3500.000 
CPU max MHz:   3500. 
CPU min MHz:   800. 
BogoMIPS:  6999.94 
Virtualization:    VT-x 
L1d cache: 32K 
L1i cache: 32K 
L2 cache:  256K 
L3 cache:  8192K 
NUMA node0 CPU(s): 0-7 
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss
ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts 
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu p
ni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr 
pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline
_timer aes xsave avx f16c rdrand lahf_lm abm epb invpcid_single kaiser 
tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi
1 hle avx2 smep bmi2 erms invpcid rtm xsaveopt dtherm arat pln pts

# hwinfo --short   
cpu: 
  Intel(R) Xeon(R) CPU E3-1275 v3 @ 3.50GHz, 3500 MHz
  Intel(R) Xeon(R) CPU E3-1275 v3 @ 3.50GHz, 3500 MHz
  Intel(R) Xeon(R) CPU E3-1275 v3 @ 3.50GHz, 3500 MHz
  Intel(R) Xeon(R) CPU E3-1275 v3 @ 3.50GHz, 3500 MHz
  Intel(R) Xeon(R) CPU 

[vpp-dev] API If Client doesnot have any pending request , it wont read the queue

2018-08-17 Thread chetan bhasin
Hi,

We are facing an issue during usage of API framework.

We have open a Non-blocking connection from Client app.

If Client does not have any pending request then it skip reading the
responses in vapi_dispatch . Please suggest

vapi_error_e
vapi_dispatch (vapi_ctx_t ctx)
{
  vapi_error_e rv = VAPI_OK;
*  while (!vapi_requests_empty (ctx))*
{
  rv = vapi_dispatch_one (ctx);
  if (VAPI_OK != rv)
{
  return rv;
}
}
  return rv;
}


Thanks,
Chetan Bhasin
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10196): https://lists.fd.io/g/vpp-dev/message/10196
Mute This Topic: https://lists.fd.io/mt/24611122/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] API If Client doesnot have any pending request , it wont read the queue

2018-08-17 Thread Klement Sekera via Lists.Fd.Io
What exactly is the issue? According to vapi_dispatch() docstring this
is expected:

/**
 * @brief loop vapi_dispatch_one until responses to all currently
outstanding
 * requests have been received and their callbacks called
 *
 * @note the dispatch loop is interrupted if any error is encountered
or
 * returned from the callback, in which case this error is returned as
the
 * result of vapi_dispatch. In this case it might be necessary to call
dispatch
 * again to process the remaining messages. Returning VAPI_EUSER from
 * a callback allows the user to break the dispatch loop (and
distinguish
 * this case in the calling code from other failures). VAPI never
returns
 * VAPI_EUSER on its own.
 *
 * @return VAPI_OK on success, other error code on error
 */
  vapi_error_e vapi_dispatch (vapi_ctx_t ctx);

What are you trying to achieve?

Thanks,
Klement


On Fri, 2018-08-17 at 15:52 +0530, chetan bhasin wrote:
> Hi,
> 
> We are facing an issue during usage of API framework.
> 
> We have open a Non-blocking connection from Client app.
> 
> If Client does not have any pending request then it skip reading the
> responses in vapi_dispatch . Please suggest
> 
> vapi_error_e
> vapi_dispatch (vapi_ctx_t ctx)
> {
>   vapi_error_e rv = VAPI_OK;
> *  while (!vapi_requests_empty (ctx))*
> {
>   rv = vapi_dispatch_one (ctx);
>   if (VAPI_OK != rv)
> {
>   return rv;
> }
> }
>   return rv;
> }
> 
> 
> Thanks,
> Chetan Bhasin
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> 
> View/Reply Online (#10196): https://lists.fd.io/g/vpp-dev/message/101
> 96
> Mute This Topic: https://lists.fd.io/mt/24611122/675704
> Group Owner: vpp-dev+ow...@lists.fd.io
> Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [ksek...@cisco.com]
> -=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10197): https://lists.fd.io/g/vpp-dev/message/10197
Mute This Topic: https://lists.fd.io/mt/24611122/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] Bonding error -- uio_interrupt

2018-08-17 Thread Damjan Marion via Lists.Fd.Io
interesting, works fine for me on c3000, but i use vfio.

Try with vfio, either with enabling iommu or using noiommu mode (kernel 
4.4+)

-- 
Damjan

> On 17 Aug 2018, at 03:22, carlito nueno  wrote:
> 
> Hi,
> 
> I am trying to bond two Intel 82599 on Intel Atom C3000. But I am
> getting uio_interrupt error and BondEthernet0 is down. Each NIC works
> by itself, without bonding.
> 
> [   12.473426] irq 16: nobody cared (try booting with the "irqpoll" option)
> [   12.480149] CPU: 2 PID: 0 Comm: swapper/2 Not tainted
> 4.15.0-20-generic #21-Ubuntu
> [   12.480150] Hardware name: Default string Default string/Default
> string, BIOS R0.10 12/27/2017
> [   12.480152] Call Trace:
> [   12.480154]  
> [   12.480164]  dump_stack+0x63/0x8b
> [   12.480168]  __report_bad_irq+0x35/0xc0
> [   12.480170]  note_interrupt+0x24b/0x2a0
> [   12.480173]  handle_irq_event_percpu+0x54/0x80
> [   12.480175]  handle_irq_event+0x3b/0x60
> [   12.480177]  handle_fasteoi_irq+0x75/0x130
> [   12.480180]  handle_irq+0x20/0x30
> [   12.480183]  do_IRQ+0x46/0xd0
> [   12.480185]  common_interrupt+0x84/0x84
> [   12.480186]  
> [   12.480190] RIP: 0010:cpuidle_enter_state+0xa7/0x2f0
> [   12.480191] RSP: 0018:bde940cc7e68 EFLAGS: 0246 ORIG_RAX:
> ffda
> [   12.480194] RAX: a0727fd22880 RBX: 0002e7793c59 RCX: 
> 001f
> [   12.480195] RDX: 0002e7793c59 RSI: fffd3353a7e3 RDI: 
> 
> [   12.480196] RBP: bde940cc7ea8 R08:  R09: 
> 0001
> [   12.480198] R10: bde940cc7e38 R11: 0001 R12: 
> a0727fd2c300
> [   12.480199] R13: 0001 R14: b3571c98 R15: 
> 
> [   12.480202]  ? cpuidle_enter_state+0x97/0x2f0
> [   12.480204]  cpuidle_enter+0x17/0x20
> [   12.480207]  call_cpuidle+0x23/0x40
> [   12.480209]  do_idle+0x18c/0x1f0
> [   12.480211]  cpu_startup_entry+0x73/0x80
> [   12.480213]  start_secondary+0x1a6/0x200
> [   12.480216]  secondary_startup_64+0xa5/0xb0
> [   12.480218] handlers:
> [   12.482499] [<37e500ce>] uio_interrupt [uio]
> [   12.487468] [<37e500ce>] uio_interrupt [uio]
> [   12.492452] [<37e500ce>] uio_interrupt [uio]
> [   12.497427] Disabling IRQ #16
> [  303.382435] irq 17: nobody cared (try booting with the "irqpoll" option)
> [  303.389199] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
> 4.15.0-20-generic #21-Ubuntu
> [  303.389201] Hardware name: Default string Default string/Default
> string, BIOS R0.10 12/27/2017
> [  303.389202] Call Trace:
> [  303.389204]  
> [  303.389212]  dump_stack+0x63/0x8b
> [  303.389216]  __report_bad_irq+0x35/0xc0
> [  303.389219]  note_interrupt+0x24b/0x2a0
> [  303.389221]  handle_irq_event_percpu+0x54/0x80
> [  303.389223]  handle_irq_event+0x3b/0x60
> [  303.389226]  handle_fasteoi_irq+0x75/0x130
> [  303.389228]  handle_irq+0x20/0x30
> [  303.389231]  do_IRQ+0x46/0xd0
> [  303.389233]  common_interrupt+0x84/0x84
> [  303.389234]  
> [  303.389238] RIP: 0010:cpuidle_enter_state+0xa7/0x2f0
> [  303.389240] RSP: 0018:b3403e10 EFLAGS: 0246 ORIG_RAX:
> ffd6
> [  303.389242] RAX: a0727fc22880 RBX: 0046a30082e4 RCX: 
> 001f
> [  303.389244] RDX: 0046a30082e4 RSI: fffd3353a7e3 RDI: 
> 
> [  303.389245] RBP: b3403e50 R08:  R09: 
> 0001
> [  303.389246] R10: b3403de0 R11: 0001 R12: 
> a0727fc2c300
> [  303.389247] R13: 0001 R14: b3571c98 R15: 
> 
> [  303.389251]  cpuidle_enter+0x17/0x20
> [  303.389253]  call_cpuidle+0x23/0x40
> [  303.389255]  do_idle+0x18c/0x1f0
> [  303.389257]  cpu_startup_entry+0x73/0x80
> [  303.389260]  rest_init+0xae/0xb0
> [  303.389263]  start_kernel+0x4dc/0x4fd
> [  303.389266]  x86_64_start_reservations+0x24/0x26
> [  303.389267]  x86_64_start_kernel+0x74/0x77
> [  303.389270]  secondary_startup_64+0xa5/0xb0
> [  303.389272] handlers:
> [  303.391558] [<37e500ce>] uio_interrupt [uio]
> 
> vppctl sh hardware-interface shows:
> 
> BondEthernet0  7down  Slave-Idx: 5 6
>  Ethernet address 08:35:71:eb:70:54
>  Ethernet Bonding
>carrier down
>flags: admin-up pmd maybe-multiseg
>rx queues 1, rx desc 1024, tx queues 2, tx desc 1024
>cpu socket 0
> 
> TenGigabitEthernet8/0/05slave TenGigabitEthernet8/0/0
>  Ethernet address 08:35:71:eb:70:54
>  Intel 82599
>carrier down
>flags: pmd maybe-multiseg bond-slave tx-offload intel-phdr-cksum
>rx queues 1, rx desc 1024, tx queues 2, tx desc 1024
>cpu socket 0
> 
> TenGigabitEthernet9/0/06slave TenGigabitEthernet9/0/0
>  Ethernet address 08:35:71:eb:70:54
>  Intel 82599
>carrier down
>flags: pmd maybe-multiseg bond-slave tx-offload intel-phdr-cksum
>rx queues 1, rx desc 1024, tx queues 2, tx desc 1024
>cpu socket 0
> 
> 
> lspic -vvv shows:
> 
> 08:00.0 Ethernet controller: Intel Corporation 

Re: [vpp-dev] API If Client doesnot have any pending request , it wont read the queue

2018-08-17 Thread chetan bhasin
Hi Klement,

Thanks for your reply!

The exact problem statement is , we are trying to send some events from VPP
to client app , but client is not able to read those events api messages
until it has some pending requests. So as a work-around we are sending
control ping after few seconds from client to have at least one request
pending from client side.

Thanks,
Chetan Bhasin

On Fri, Aug 17, 2018 at 4:26 PM, Klement Sekera  wrote:

> What exactly is the issue? According to vapi_dispatch() docstring this
> is expected:
>
> /**
>  * @brief loop vapi_dispatch_one until responses to all currently
> outstanding
>  * requests have been received and their callbacks called
>  *
>  * @note the dispatch loop is interrupted if any error is encountered
> or
>  * returned from the callback, in which case this error is returned as
> the
>  * result of vapi_dispatch. In this case it might be necessary to call
> dispatch
>  * again to process the remaining messages. Returning VAPI_EUSER from
>  * a callback allows the user to break the dispatch loop (and
> distinguish
>  * this case in the calling code from other failures). VAPI never
> returns
>  * VAPI_EUSER on its own.
>  *
>  * @return VAPI_OK on success, other error code on error
>  */
>   vapi_error_e vapi_dispatch (vapi_ctx_t ctx);
>
> What are you trying to achieve?
>
> Thanks,
> Klement
>
>
> On Fri, 2018-08-17 at 15:52 +0530, chetan bhasin wrote:
> > Hi,
> >
> > We are facing an issue during usage of API framework.
> >
> > We have open a Non-blocking connection from Client app.
> >
> > If Client does not have any pending request then it skip reading the
> > responses in vapi_dispatch . Please suggest
> >
> > vapi_error_e
> > vapi_dispatch (vapi_ctx_t ctx)
> > {
> >   vapi_error_e rv = VAPI_OK;
> > *  while (!vapi_requests_empty (ctx))*
> > {
> >   rv = vapi_dispatch_one (ctx);
> >   if (VAPI_OK != rv)
> > {
> >   return rv;
> > }
> > }
> >   return rv;
> > }
> >
> >
> > Thanks,
> > Chetan Bhasin
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> >
> > View/Reply Online (#10196): https://lists.fd.io/g/vpp-dev/message/101
> > 96
> > Mute This Topic: https://lists.fd.io/mt/24611122/675704
> > Group Owner: vpp-dev+ow...@lists.fd.io
> > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [ksek...@cisco.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10199): https://lists.fd.io/g/vpp-dev/message/10199
Mute This Topic: https://lists.fd.io/mt/24611122/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] DPDK plugin - port ID and index

2018-08-17 Thread Damjan Marion via Lists.Fd.Io
Are you on some old vpp version?

We did recently what i think you are asking for, port_id is now decoupled from 
device_index...


-- 
Damjan

> On 17 Aug 2018, at 10:15, Andrzej Ostruszka  wrote:
> 
> Hello all
> 
> I'm new to VPP so please bear with my ignorance in its
> architecture/internals/development process :).
> 
> I'd like to ask for some change regarding DPDK plugin - to be specific
> to differentiate between "device index" (in device table) and "device
> id" (the DPDK port ID).  More information about the change is below and
> the proposed patch is in the attachment (since I'm not aware yet of the
> process to proposed them - if there is any).
> 
> The background for the change is as follows: I've developed a logical
> PMD for DPDK that is meant to split different type of traffic (read some
> "tag") to different "logical" ports while under the hood for actual
> transmission a "physical" port is used.  The driver on the RX side takes
> care of the finding the correct "logical" port for given tag, stripping
> it and passing to the port and on TX side its job is to insert the tag
> and pass it to the "physical" port for transmission.  It works with
> test-pmd and l2fwd DPDK applications but our customer wishes to use it
> also with VPP and here I needed to make some changes which I'd like to
> upstream now.
> 
> From the above description you can see that for N logical ports there
> are N+1 (at least) actual DPDK ports used.  So the situation is a bit
> like "reversed bonding driver" - in bonding PMD the are many "physical"
> ports that are grouped to form one "logical" link, and in my case this
> is reversed.
> 
> I've decided to make use of the new DPDK API "rte_eth_dev_owner_new/set"
> (introduced by commit 5b7ba31148a8b and still marked as "experimental")
> because this makes much easier for other applications (like VPP) to not
> depend on the internals of given PMD - for example I did not have to
> touch testpmd and l2fwd apps from DPDK to make them work since they were
> already using/compatible with the new API.
> 
> This however requires some changes in VPP to make it work.  Previously
> you simply assumed that DPDK port IDs start with 0 and assumed 1 to 1
> correspondence between index in internal table with DPDK port id.  With
> the use of some "internal/owned" DPDK ports this is no longer true so
> what I am proposing is to add 'device_id' to 'dpdk_device_t' and make
> use of it when passing to RTE functions and use 'RTE_ETH_FOREACH_DEV'
> macro instead of plain 'for' loops starting with 0.
> 
> The patch in the attachment is what I have used for our customer.  Note
> however that this was my first contact with VPP so there might be
> something wrong with it or I might have missed some other places that
> also need an update.  Also note that since the "ownership" API in DPDK
> is still marked as experimental then you'll need to add
> "-Wno-deprecated-declarations" to your compilation flags in platform
> files (I'm using a separate one so don't have patch for you).
> 
> Let me know what you think.
> 
> Best regards
> Andrzej
> <0001-plugins-dpdk-do-not-use-internal-index-for-port-id.patch>-=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> 
> View/Reply Online (#10193): https://lists.fd.io/g/vpp-dev/message/10193
> Mute This Topic: https://lists.fd.io/mt/24610614/675642
> 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 (#10201): https://lists.fd.io/g/vpp-dev/message/10201
Mute This Topic: https://lists.fd.io/mt/24610614/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] API If Client doesnot have any pending request , it wont read the queue

2018-08-17 Thread Klement Sekera via Lists.Fd.Io
Hi Chetan,

I think that in this case it's better to use blocking interface, as you
are waiting for the events to come.

You can take a look at test/ext/vapi_c_test.c - tests called 
test_stats_1, _2 & _3 deal with stats - first two show a blocking,
efficient interface, third one is non-blocking, which in this case
busy-loops until it gets the stats.

Thanks,
Klement


On Fri, 2018-08-17 at 17:18 +0530, chetan bhasin wrote:
> Hi Klement,
> 
> Thanks for your reply!
> 
> The exact problem statement is , we are trying to send some events
> from VPP
> to client app , but client is not able to read those events api
> messages
> until it has some pending requests. So as a work-around we are
> sending
> control ping after few seconds from client to have at least one
> request
> pending from client side.
> 
> Thanks,
> Chetan Bhasin
> 
> On Fri, Aug 17, 2018 at 4:26 PM, Klement Sekera 
> wrote:
> 
> > 
> > What exactly is the issue? According to vapi_dispatch() docstring
> > this
> > is expected:
> > 
> > /**
> >  * @brief loop vapi_dispatch_one until responses to all currently
> > outstanding
> >  * requests have been received and their callbacks called
> >  *
> >  * @note the dispatch loop is interrupted if any error is
> > encountered
> > or
> >  * returned from the callback, in which case this error is returned
> > as
> > the
> >  * result of vapi_dispatch. In this case it might be necessary to
> > call
> > dispatch
> >  * again to process the remaining messages. Returning VAPI_EUSER
> > from
> >  * a callback allows the user to break the dispatch loop (and
> > distinguish
> >  * this case in the calling code from other failures). VAPI never
> > returns
> >  * VAPI_EUSER on its own.
> >  *
> >  * @return VAPI_OK on success, other error code on error
> >  */
> >   vapi_error_e vapi_dispatch (vapi_ctx_t ctx);
> > 
> > What are you trying to achieve?
> > 
> > Thanks,
> > Klement
> > 
> > 
> > On Fri, 2018-08-17 at 15:52 +0530, chetan bhasin wrote:
> > > 
> > > Hi,
> > > 
> > > We are facing an issue during usage of API framework.
> > > 
> > > We have open a Non-blocking connection from Client app.
> > > 
> > > If Client does not have any pending request then it skip reading
> > > the
> > > responses in vapi_dispatch . Please suggest
> > > 
> > > vapi_error_e
> > > vapi_dispatch (vapi_ctx_t ctx)
> > > {
> > >   vapi_error_e rv = VAPI_OK;
> > > *  while (!vapi_requests_empty (ctx))*
> > > {
> > >   rv = vapi_dispatch_one (ctx);
> > >   if (VAPI_OK != rv)
> > > {
> > >   return rv;
> > > }
> > > }
> > >   return rv;
> > > }
> > > 
> > > 
> > > Thanks,
> > > Chetan Bhasin
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > > Links: You receive all messages sent to this group.
> > > 
> > > View/Reply Online (#10196): https://lists.fd.io/g/vpp-dev/message
> > > /101
> > > 96
> > > Mute This Topic: https://lists.fd.io/mt/24611122/675704
> > > Group Owner: vpp-dev+ow...@lists.fd.io
> > > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [ksekera@cisco.
> > > com]
> > > -=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10200): https://lists.fd.io/g/vpp-dev/message/10200
Mute This Topic: https://lists.fd.io/mt/24611122/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] API If Client doesnot have any pending request , it wont read the queue

2018-08-17 Thread chetan bhasin
Thanks a lot Klement.

On Fri, Aug 17, 2018 at 5:36 PM, Klement Sekera  wrote:

> Hi Chetan,
>
> I think that in this case it's better to use blocking interface, as you
> are waiting for the events to come.
>
> You can take a look at test/ext/vapi_c_test.c - tests called
> test_stats_1, _2 & _3 deal with stats - first two show a blocking,
> efficient interface, third one is non-blocking, which in this case
> busy-loops until it gets the stats.
>
> Thanks,
> Klement
>
>
> On Fri, 2018-08-17 at 17:18 +0530, chetan bhasin wrote:
> > Hi Klement,
> >
> > Thanks for your reply!
> >
> > The exact problem statement is , we are trying to send some events
> > from VPP
> > to client app , but client is not able to read those events api
> > messages
> > until it has some pending requests. So as a work-around we are
> > sending
> > control ping after few seconds from client to have at least one
> > request
> > pending from client side.
> >
> > Thanks,
> > Chetan Bhasin
> >
> > On Fri, Aug 17, 2018 at 4:26 PM, Klement Sekera 
> > wrote:
> >
> > >
> > > What exactly is the issue? According to vapi_dispatch() docstring
> > > this
> > > is expected:
> > >
> > > /**
> > >  * @brief loop vapi_dispatch_one until responses to all currently
> > > outstanding
> > >  * requests have been received and their callbacks called
> > >  *
> > >  * @note the dispatch loop is interrupted if any error is
> > > encountered
> > > or
> > >  * returned from the callback, in which case this error is returned
> > > as
> > > the
> > >  * result of vapi_dispatch. In this case it might be necessary to
> > > call
> > > dispatch
> > >  * again to process the remaining messages. Returning VAPI_EUSER
> > > from
> > >  * a callback allows the user to break the dispatch loop (and
> > > distinguish
> > >  * this case in the calling code from other failures). VAPI never
> > > returns
> > >  * VAPI_EUSER on its own.
> > >  *
> > >  * @return VAPI_OK on success, other error code on error
> > >  */
> > >   vapi_error_e vapi_dispatch (vapi_ctx_t ctx);
> > >
> > > What are you trying to achieve?
> > >
> > > Thanks,
> > > Klement
> > >
> > >
> > > On Fri, 2018-08-17 at 15:52 +0530, chetan bhasin wrote:
> > > >
> > > > Hi,
> > > >
> > > > We are facing an issue during usage of API framework.
> > > >
> > > > We have open a Non-blocking connection from Client app.
> > > >
> > > > If Client does not have any pending request then it skip reading
> > > > the
> > > > responses in vapi_dispatch . Please suggest
> > > >
> > > > vapi_error_e
> > > > vapi_dispatch (vapi_ctx_t ctx)
> > > > {
> > > >   vapi_error_e rv = VAPI_OK;
> > > > *  while (!vapi_requests_empty (ctx))*
> > > > {
> > > >   rv = vapi_dispatch_one (ctx);
> > > >   if (VAPI_OK != rv)
> > > > {
> > > >   return rv;
> > > > }
> > > > }
> > > >   return rv;
> > > > }
> > > >
> > > >
> > > > Thanks,
> > > > Chetan Bhasin
> > > > -=-=-=-=-=-=-=-=-=-=-=-
> > > > Links: You receive all messages sent to this group.
> > > >
> > > > View/Reply Online (#10196): https://lists.fd.io/g/vpp-dev/message
> > > > /101
> > > > 96
> > > > Mute This Topic: https://lists.fd.io/mt/24611122/675704
> > > > Group Owner: vpp-dev+ow...@lists.fd.io
> > > > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [ksekera@cisco.
> > > > com]
> > > > -=-=-=-=-=-=-=-=-=-=-=-
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10202): https://lists.fd.io/g/vpp-dev/message/10202
Mute This Topic: https://lists.fd.io/mt/24611122/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] VPP crashes on multi core

2018-08-17 Thread Dave Barach via Lists.Fd.Io
Please refer to https://wiki.fd.io/view/VPP/BugReports for bug reporting, also 
https://wiki.fd.io/view/VPP/Configuration_Tool

If you expect folks to volunteer to help you: write up your system 
configuration, vpp version and configuration, and so forth to a reasonable 
standard.

From: vpp-dev@lists.fd.io  On Behalf Of Mehran Memarnejad
Sent: Friday, August 17, 2018 5:51 AM
To: vpp-dev@lists.fd.io
Subject: [vpp-dev] VPP crashes on multi core

Hi,
In default configuration of vpp on single core, everything seems ok but when I 
want to get the most out of my hardware resources and modify vpp startup 
config, it crashes at some stages.
Here is some carshes:
1- I set interface's IP and then when I plugged cables in ports, It suddenly 
carshes and system needs to be rebooted.

2- once I set up a vpls scenario and I was passing traffics without any problem 
but when I plugged out the cable connecting PE to P router while the traffic 
was comming, vpp crashed.

In some cases, I use the same configurations but sometimes it crashes and 
sometimes it doesn't.

How should I setup VPP to make it use all hardware resources?? I mean how 
should I set CPU cores, RAM and etc??

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

View/Reply Online (#10203): https://lists.fd.io/g/vpp-dev/message/10203
Mute This Topic: https://lists.fd.io/mt/24610978/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] DPDK plugin - port ID and index

2018-08-17 Thread Andrzej Ostruszka
On 17.08.2018 14:07, Damjan Marion wrote:
> Are you on some old vpp version?
> 
> We did recently what i think you are asking for, port_id is now
> decoupled from device_index...

Oh shoot!  Yes indeed our client is using older version of VPP - my bad
I should have checked current version.

Now I've found a059a000 - thank you and sorry for the noise.

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

View/Reply Online (#10204): https://lists.fd.io/g/vpp-dev/message/10204
Mute This Topic: https://lists.fd.io/mt/24610614/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


[vpp-dev] vector packet processing works in case of multiple interfaces tied to a CPU core (vpp worker).

2018-08-17 Thread Vinay Krishna Ambati
Hi,

We have a heavy node that does lots of packet field modifications (like encap 
tunnels) and  is the next node for dpdk-input.
This node is followed by another node and outputs the packet to the dpdk-output 
node.
We are observing some packet corruption in case we have more than 1 interface 
configured to this core.
If there is a 1 to 1 mapping between the cores and the interfaces then we do 
not see this corruption.

We have a some questions regarding the vector processing in this case.

1.   Is it that each interface generates its own vector ?

2.   How does the nodes get processed ? Is it that the first node goes 
through all the vectors and then schedules the next node or

3.   is it that a vector is taken up for processing and it completes all 
the node processing in the graph before picking up the next vector ?

4.   We have a requirement to pass some context data between the nodes. The 
opaque data is unfortunately small to hold these information.

What is the recommendation in general to pass around this context information ?

Regards,
Vinay


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

View/Reply Online (#10205): https://lists.fd.io/g/vpp-dev/message/10205
Mute This Topic: https://lists.fd.io/mt/24612433/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] NAT Fragment Reassembly

2018-08-17 Thread Jon Loeliger
On Thu, Aug 16, 2018 at 12:39 AM, Matus Fabian -X (matfabia - PANTHEON
TECHNOLOGIES at Cisco)  wrote:

> Max_frag value is applied when fragments arrived out of order
>

Ahhh  That wasn't clear... But I see...


> (non-initial fragments arrive before first fragment which contains L4
> header), fragments are stored and waiting for first fragment (max_frag is
> limit for number of stored fragments). Fragments are dropped in
> nat44-in2out-reass or nat44-out2in-reass node. Whether fragments are
> dropped depends on order. All fragments should be dropped when max_frag is
> 1 and 2 non-initial fragments are received before first fragment. After a
> brief look into the code I see that this is not current behaviour and
> dropped is only second fragment so I think some improvements should be
> done in the future.
>

Would you like a bug report to keep track of that?


> Matus
>

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

View/Reply Online (#10206): https://lists.fd.io/g/vpp-dev/message/10206
Mute This Topic: https://lists.fd.io/mt/24529319/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] LACP link bonding issue

2018-08-17 Thread steven luong via Lists.Fd.Io
Aleksander,

I found the CLI bug. You can easily workaround with it. Please set the physical 
interface state up first in your CLI sequence and it will work.

create bond mode lacp load-balance l23
bond add BondEthernet0 GigabitEtherneta/0/0
bond add BondEthernet0 GigabitEtherneta/0/1
set interface ip address BondEthernet0 10.0.0.1/24
set interface state GigabitEtherneta/0/0 up   < move these two lines to the 
beginning, prior to create bond
set interface state GigabitEtherneta/0/1 up
set interface state BondEthernet0 up

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

View/Reply Online (#10207): https://lists.fd.io/g/vpp-dev/message/10207
Mute This Topic: https://lists.fd.io/mt/24525535/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] VPP crashes on multi core

2018-08-17 Thread Mehran Memarnejad
Here is the system characteristics:

==
NODE: DUT1

CPU:
  Model name:Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
  CPU(s):16
  Thread(s) per core:2
  Core(s) per socket:8
   Socket(s):1
   NUMA node0 CPU(s):0-15
 CPU max MHz:3400.
 CPU min MHz:1200.
 SMT:Enabled

VPP Threads: (Name: Cpu Number)
  vpp_wk_2  : 3
  vpp_main  : 1
  vpp_wk_1  : 2
  vpp_wk_0  : 0
  vpp_stats : 0

Grub Command Line:
  Current: BOOT_IMAGE=/boot/vmlinuz-4.4.0-127-generic
root=UUID=c1dc6de4-d9fe-46ac-b679-58576c59a655 ro net.ifnames=0
biosdevname=0
  Configured: GRUB_CMDLINE_LINUX_DEFAULT=""

Huge Pages:
  Total System Memory   : 16396212 kB
  Total Free Memory : 13334516 kB
  Actual Huge Page Total: 1024
  Configured Huge Page Total: 1024
  Huge Pages Free   : 971
  Huge Page Size: 2048 kB

Devices:

Devices with link up (can not be used with VPP):
:0a:00.0mgmt1 82583V Gigabit Network Connection

No devices bound to kernel drivers

Devices bound to DPDK drivers:
:33:00.3  82580 Gigabit Network Connection
:0b:00.0  82583V Gigabit Network Connection
:32:00.1  82580 Gigabit Network Connection
:32:00.3  82580 Gigabit Network Connection
:33:00.0  82580 Gigabit Network Connection
:33:00.1  82580 Gigabit Network Connection
:33:00.2  82580 Gigabit Network Connection
:32:00.0  82580 Gigabit Network Connection
:06:00.0  82580 Gigabit Network Connection
:06:00.1  82580 Gigabit Network Connection
:06:00.2  82580 Gigabit Network Connection
:06:00.3  82580 Gigabit Network Connection
:05:00.1  82580 Gigabit Network Connection
:05:00.0  82580 Gigabit Network Connection
:05:00.3  82580 Gigabit Network Connection
:05:00.2  82580 Gigabit Network Connection
:01:00.1  82599ES 10-Gigabit SFI/SFP+
Network Connection
:01:00.0  82599ES 10-Gigabit SFI/SFP+
Network Connection
:32:00.2  82580 Gigabit Network Connection

Devices in use by VPP:
Name   Socket RXQs RXDescs TXQs TXDescs
GigabitEthernet32/0/0   01102441024
GigabitEthernet32/0/1   01102441024
GigabitEthernet32/0/2   01102441024
GigabitEthernet32/0/3   01102441024
GigabitEthernet33/0/0   01102441024
GigabitEthernet33/0/1   01102441024
GigabitEthernet33/0/2   01102441024
GigabitEthernet33/0/3   01102441024
GigabitEthernet5/0/001102441024
GigabitEthernet5/0/101102441024
GigabitEthernet5/0/201102441024
GigabitEthernet5/0/301102441024
GigabitEthernet6/0/001102441024
GigabitEthernet6/0/101102441024
GigabitEthernet6/0/201102441024
GigabitEthernet6/0/301102441024
GigabitEtherneta/0/001102411024
GigabitEthernetb/0/001102411024
TenGigabitEthernet1/0/0 01102441024
TenGigabitEthernet1/0/1 01102441024

VPP Service Status:
  active (running)

==

VPP : the latest one (18.11)
OS : Ubuntu 16.04.4 LTS


On Fri, Aug 17, 2018 at 5:02 PM, Dave Barach (dbarach) 
wrote:

> Please refer to https://wiki.fd.io/view/VPP/BugReports for bug reporting,
> also https://wiki.fd.io/view/VPP/Configuration_Tool
>
>
>
> If you expect folks to *volunteer* to help you: write up your system
> configuration, vpp version and configuration, and so forth to a reasonable
> standard.
>
>
>
> *From:* vpp-dev@lists.fd.io  *On Behalf Of *Mehran
> Memarnejad
> *Sent:* Friday, August 17, 2018 5:51 AM
> *To:* vpp-dev@lists.fd.io
> *Subject:* [vpp-dev] VPP crashes on multi core
>
>
>
> Hi,
>
> In default configuration of vpp on single core, everything seems ok but
> when I want to get the most out of my hardware resources and modify vpp
> startup config, it crashes at some stages.
>
> Here is some carshes:
>
> 1- I set interface's IP and then when I plugged cables in ports, It
> suddenly carshes and