19 Commits

Author SHA1 Message Date
Dave Barach
77378332ac add xxx_or_null(...) message buffer allocation variants
Useful when attempting to serialize potentially very large data
structures and send them to API clients. NULL pointer checks are
MANDATORY when calling xxx_or_null(...) variant functions.

Change-Id: I6ae272deb7150a2c5aa82ec45a206e5bddee7a02
Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-13 17:36:12 -04:00
Dave Barach
e91836368c Fix mutex/condvar sleep when adding API msgs, VPP-461
Simply put, threads cannot sleep waiting for the vlib memory api main
input queue to drain. If, say, thread i (i !=0) fills the vlib api
main input queue with rpc requests - and then blocks trying to add
another request - the game is over.

RPCs attempt a barrier synchronization, which fails with Pr = {1.0}
because thread i is in a mutex/condvar sleep.

Add a main-thread cut-through path, which directly invokes the RPC
callback function when called on the main thread.

Change-Id: Ib036f0cc43b5738455c3a111cff64a132537152e
Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-05 07:44:47 +00:00
Calvin
16649375fe VPP-210: Add "sh api status"
Change-Id: I164761bc2b242b6be527d057108dd09b99653ff5
Signed-off-by: Calvin <calvin.ference@gmail.com>
2016-08-31 17:11:56 +00:00
Dave Barach
c379999665 VPP-327 Coding standards cleanup for vppinfra
Fix additional a few additional deviations reported elsewhere by
checkstyle

Change-Id: I026a8ae1c5b1856bbe3c4a555e1b690e7501b045
Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-15 11:12:40 -04:00
Dave Barach
b3d93dacfd VPP-236 Support 64-bit vector lengths, shared memory segments >4 GB
Change-Id: I02aee33e96e7ae32094b9f82f6a667d30bb52f59
Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-15 13:57:25 +00:00
Ed Warnicke
853e720fdd VPP-237: indent fixes in prep for checkstyle
Ran indent *twice*

Change-Id: If9c18b81983bb859cc8dc3b415c67cbf318fc618
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-08-12 12:07:54 -07:00
Dave Barach
ac0798db35 Fix coverity warnings
Change-Id: I37131f2d814a608fe9098daff83ff395f7ce99d7
Signed-off-by: Dave Barach <dave@barachs.net>
2016-07-26 10:31:05 -04:00
Dave Barach
371e4e19d1 fd-io-styleify pass
Change-Id: I72d0dff064162d11321257c858f68da1ba79ea48
Signed-off-by: Dave Barach <dave@barachs.net>
2016-07-08 15:11:40 +00:00
Dave Barach
b84ccc614d vpp-83: fix double-unlock
Change-Id: I0b75b4f9bef62aba69e9cc163924f6b985a35455
Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-17 07:09:44 +00:00
Dave Barach
599839d12d VPP-83: fix collateral damage
Accidentally removed pthread_mutex_unlock (&root_rp->mutex) in the
dead client scan case. Oops. Bad idea.

Change-Id: I488b7e39d01c267052785bd346e8846351db90a9
Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-07 18:28:51 -04:00
Dave Barach
16c75df797 VPP-83 Allow non-privileged clients to use the vpp binary API.
Use the command line argument "api-segment { uid <nnn> gid <nnn> }" to
configure shared memory segment file ownership. Defaults to uid = gid
= 0.  Shared-memory segments are explicitly set to 0770 mode, aka
"rwxrwx---".

Change-Id: Ic5d596b68139add61e7de6ace035c57dfd030111
Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-01 20:05:08 +00:00
Dave Barach
6931f59e54 Add per-thread, per-node runtime stats serialization
Change-Id: Ic4009cdbac67b7cd53c88079439496b9d9dfaa35
Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-21 10:04:06 -04:00
Damjan Marion
f1213b8277 Add clib_memcpy macro based on DPDK rte_memcpy implementation
Change-Id: I22cb443c4bd0bf298abb6f06e8e4ca65a44a2854
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-22 17:29:47 +02:00
Ole Troan
6855f6cdfe Python-API: Inital commit of Python bindings for the VPP API.
See: https://wiki.fd.io/view/VPP/Python_API

Change-Id: If135fc32208c7031787e1935b399d930e0e1ea1f
Signed-off-by: Ole Troan <ot@cisco.com>
2016-04-20 16:50:29 +00:00
Dave Barach
dae88b9a53 VPP-6: set epoll wait-time to zero when binary API messages are waiting
Change-Id: I629ef98ecd3b729d2564b3a1ba8c6039f854f86c
Signed-off-by: Dave Barach <dave@barachs.net>
2016-04-19 09:38:53 -04:00
Christophe Fontaine
fef15b4bb8 Add support for AArch32
gcc version 4.9.2 (Raspbian 4.9.2-10)
Tested on Linux raspberrypi 4.4.6-v7+ #875 SMP Tue Apr 12 16:33:02 BST 2016 armv7l GNU/Linux

CPUs may be little or big endian, detect with gcc flags, not the processor architecture
Add a new flag $(PLATFORM)_uses_openssl which allows to disable the link with openssl lib.

vlib/vlib/threads.c:
startup.conf must:
- specify the heapsize as we don't have hugepages on raspbian

cpu {
  main-core 3
}
heapsize 64M

Corrects in various files the assumption uword == u64 and replaces 'u64' cast with 'pointer_to_uword' and 'uword_to_pointer' where appropriate.
256 CPUs may create an OOM when testing with small memory footprint ( heapsize 64M ), allows the number of VLIB_MAX_CPUS to be set in platforms/*.mk

vppinfra/vppinfra/longjmp.S:
ARM - copy r1 (1st parameter of the setjmp call) to r0 (return value)

vppinfra/vppinfra/time.h:
On ARMv7 in AArch32 mode, we can access to a 64bit register to retreive the cycles count.
gcc on rpi only declare ARM_ARCH 6. Override this info, and check if it is possible to use 'mrrc'.
/!\ the time function will NOT work without allowing the user mode access to the PMU.
You may download the source of the kmod here:
https://github.com/christophefontaine/arm_rdtsc

Change-Id: I8142606436d9671a184133b935398427f08a8bd2
Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
2016-04-18 13:20:57 +00:00
Dave Barach
309bef25f1 Enable shared-VM namespace support
Required prep work for gracefully supporting
"... dpdk { proc-type secondary }" -  multiple processes sharing a physical
host, VM, container, etc.

Change-Id: Ic3eb72f4093e26d7c86dde3b8799264f1d0c218b
Signed-off-by: Dave Barach <dave@barachs.net>
2016-01-22 16:10:07 -05:00
Dave Barach
4e281a48e2 Move rpc handler where it belongs, related cleanup
Change-Id: I393df100558a85fe676f4a4c8c9b546fa549ecc9
Signed-off-by: Dave Barach <dave@barachs.net>
2015-12-14 11:16:02 -05:00
Ed Warnicke
cb9cadad57 Initial commit of vpp code.
Change-Id: Ib246f1fbfce93274020ee93ce461e3d8bd8b9f17
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-08 15:47:27 -07:00