History log of /vpp/src/vcl/vppcom.c
Revision Date Author Comments
# 080aa503 26-May-2020 Florin Coras <fcoras@cisco.com>

vcl: do not propagate epoll events if session closed

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I1e9652b476bbc07852b4e701a948c36a0d8c67fa


# 1e96617d 16-May-2020 Florin Coras <fcoras@cisco.com>

vcl: support connected udp listens

Request connected udp listener behavior by setting
VPPCOM_ATTR_SET_CONNECTED attribute with vppcom_session_attr

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iba95155c0f41cea8c6e1a4263946270d49c213ac


# 3ca663e7 15-May-2020 Florin Coras <fcoras@cisco.com>

vcl: remove udpc transport

Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I145ff3301f168973c4f7f32c337bbcac47900705


# d0e646f6 11-May-2020 hanlin <hanlin_wang@163.com>

vcl svm: fix rx event loss

When vcl_epoll_wait_handle_mq handles rx events exceeding maxevents, VPP will not signal because cursize > 0, and the remaining rx events cannot be triggered because the eventfd event has been read. Therefore, we should dequeue all events until cursize = 0. And then handle msg up to maxevents with vcl_epoll_wait_handle_mq_event and those beyond with vcl_handle_mq_event.

Type: fix
Signed-off-by: hanlin <hanlin_wang@163.com>
Change-Id: I8a0c87cb41c837deb8284b40f668cc3c7d9d6e56
Signed-off-by: hanlin <hanlin_wang@163.com>


# 69d97256 11-May-2020 Florin Coras <fcoras@cisco.com>

vcl: de-init vcl on destroy

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If3372e3edd403240c2c9da746246170549a3e644


# 6017ff0d 04-May-2020 Pivo <iwijnand@cisco.com>

vcl: allow vcl worker index to be set by applications

When using vppcom_session* apis to setup TCP sessions in applications build outside of the VPP repository, it is necessary to set the worker_index explicitly when these apis are called from the none-VCL worker threads. An example is when data is to be sent to the TCP session that is originated from a different thread, like the main program thread or from the bin api thread. This change allows the application to set it.

Type: fix

Signed-off-by: IJsbrand Wijnands <ice@cisco.com>
Change-Id: I37f3654a49ea9a8cf3a0d3d0e672583018c12299


# dc0ded7d 30-Apr-2020 Florin Coras <fcoras@cisco.com>

vcl: disconnect both flavors of bapi transport on destroy

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6697296b45c5816a31535b0cf44b8e726292b8bb


# 36d49391 24-Apr-2020 Florin Coras <fcoras@cisco.com>

session vcl: propagate transport cleanup notifications

Type: improvement

Can be used to force app to close a connection on which it still waits
for data.

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I7c3a8245cbbc23728e4408feb63a659a11f718ed


# 5e6222a0 24-Apr-2020 Florin Coras <fcoras@cisco.com>

vcl: generate select events on read/write errors

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3429f9d0406b6d710846fc82d77400f26f77fdf4


# 38ab5672 22-Apr-2020 Benoît Ganne <bganne@cisco.com>

vcl: fix use-after-free

Make sure we disconnect from vlib prior to free-ing the last worker, as
we'll need to access it.

Type: fix

Change-Id: Id5bdd17f0f5efa1ce52021b4270eb4f1e95cc61d
Signed-off-by: Benoît Ganne <bganne@cisco.com>


# f49cf470 19-Apr-2020 Florin Coras <fcoras@cisco.com>

vcl: ensure sessions are open on select events

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4d56b61af574dfdaf6028160ce331606bdf65609


# ce815deb 16-Apr-2020 Florin Coras <fcoras@cisco.com>

vcl: fix app destroy

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I21daa87b1a301142270a1bf20680dd9e9395aac9


# ba78e238 06-Apr-2020 Florin Coras <fcoras@cisco.com>

udp session: jumbo frames and configurable mtu

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6b750bef5df0f8544e05177ccd480f87a020832d


# 7a2abce4 05-Apr-2020 Florin Coras <fcoras@cisco.com>

vcl session: enforce full dgram reads/writes

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4a3861e31ca42faf0b59f8f09393fb10413bf3af


# 57660d9d 04-Apr-2020 Florin Coras <fcoras@cisco.com>

session udp: shared local endpoints

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie7102355b95eefb233ec7d146e61819051a7bf07


# 00e01d3e 21-Oct-2019 Florin Coras <fcoras@cisco.com>

session: improve error reporting

Type: improvement

Change-Id: I9dd850a1ce85b0adb5136233f176117e0ee38817
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 0a1e183e 29-Mar-2020 Florin Coras <fcoras@cisco.com>

session udp: support connect on listeners

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6aaaec20a2b6d4c6ddfbe659d9402acc1be2f7e2


# 5da10c4c 01-Apr-2020 Florin Coras <fcoras@cisco.com>

vcl: support sendto for dgrams

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I2a0fdced6a3ae262b30cda6a51f1fa96c1d44665


# 07063b8e 13-Mar-2020 Florin Coras <fcoras@cisco.com>

session: api to add new transport types

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If4dee6dba1ea942daa921d566b35cdecdda680ee


# f22f4e56 20-Dec-2019 Florin Coras <fcoras@cisco.com>

svm: refactor fifo

Type: refactor

Switch from a wrapped byte space to a "continuous" one wherein fifo
chunks are appended to the fifo as more data is enqueued and chunks are
removed as data is dequeued.

The fifo is still subject to a maximum size, i.e., maximum number of
bytes that can be enqueued, so the max number of chunks associated to
the fifo is also constrained.

When enqueueing data, which must fit within the available free space, if
not enough "supporting" chunk memory is available, the fifo asks the
fifo segment for enough chunk memory to ensure that the write can
succeed. To avoid allocating large amounts of small chunks due to small
writes, if possible, the size of the chunks requested is lower capped by
min_alloc.

When dequeuing data, all the chunks that have been completely drained,
i.e., head moved beyond the chunks’ end bytes, are unlinked from the
fifo and returned to the fifo segment. The one exception to this is the
last chunk which is never unlinked.

Change-Id: I98c1dbd9135fb79650365c7e40c29238b96cd4ee
Signed-off-by: Florin Coras <fcoras@cisco.com>


# e88845e4 13-Feb-2020 Florin Coras <fcoras@cisco.com>

vcl: clear accept msg flags

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Idb513232e7b091c8f767726bfa1deb10a7e3b751


# adcfb15f 12-Feb-2020 Florin Coras <fcoras@cisco.com>

vcl: handle close after reset

Can happen if a connection is reset before fully accepted.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0ae68d71b66722dd19ca6f1cee44a080e5ff4447


# 54140624 04-Feb-2020 Florin Coras <fcoras@cisco.com>

vcl: switch to closed state after app close

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I851db474538de76d5f70dd6d6f83a6487a5a02bd


# 9ace36d0 28-Oct-2019 Florin Coras <fcoras@cisco.com>

vcl session: propagate cleanup notifications to apps

Type: feature

Change-Id: I7f8e3763d7f8364563a25d0fcc782976b906b325
Signed-off-by: Florin Coras <fcoras@cisco.com>


# ddb90a06 22-Jan-2020 Florin Coras <fcoras@cisco.com>

vcl: always report EPOLLHUP/EPOLLRDHUP on close

Type: fix

Change-Id: I3d24a7973c7113ffeb9109e89cda7fa960e73a5b
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 68b7e588 22-Jan-2020 Florin Coras <fcoras@cisco.com>

vcl session: udp session migration notifications

Type: feature

Change-Id: I402549818ba6e078802e914293304174dc6625c2
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 6e3c1f8e 15-Jan-2020 Florin Coras <fcoras@cisco.com>

vcl: add rx event on epoll ctl if needed

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ib6d0387076a4bb0b52e4cdfdcd62b6060b704fe6


# 475c9d7b 26-Dec-2019 hanlin <hanlin_wang@163.com>

vcl: EPOLLOUT should be generated when epoll_ctl called with EPOLLOUT
event

Type: fix

When we call epoll_ctl to add or mod fd with EPOLLOUT event, mostly to
check if we can write. So we expect a EPOLLOUT event should be generated
immediately unless tx queue is full.

Signed-off-by: hanlin <hanlin_wang@163.com>
Change-Id: Ie99986a44dbb07b6ff2fba6512171056f79e77bd


# c4c4cf50 25-Aug-2019 Florin Coras <fcoras@cisco.com>

session: move add/del segment msg to mq

Type: refactor

Change-Id: I32234173ebd69f80acb1afa4039fffbd19157f6d
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 96453fd2 16-Dec-2019 wanghanlin <wanghanlin@corp.netease.com>

vcl: RX event may lost when accept session repeatedly

Type: fix

Some applications may call accept repeatedly to process all connect
request until get EAGIAIN error. Subsequent call may get RX event of
previous accepted session, then should process it rather than just
discard it.

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: Ice53442de66289a62591b79a9cc31e883e894c23


# 64cf459b 12-Dec-2019 Florin Coras <fcoras@cisco.com>

vcl: fix disconnect from binary api

Type: fix

Change-Id: I4398d26879b5efd932fa1d9ae232aa918ec736d6
Signed-off-by: Florin Coras <fcoras@cisco.com>


# d4c70922 28-Nov-2019 Florin Coras <fcoras@cisco.com>

vcl: separate binary api connections per thread worker

Type: fix

Change-Id: I2d72efc74a3b0a5b9e4da265475b1b01bf361125
Signed-off-by: Florin Coras <fcoras@cisco.com>


# b2955355 03-Dec-2019 Yu Ping <ping.yu@intel.com>

vcl: resolve VCL part session cleanup issue

In Nginx performance test, we notice that there are so many session kept
open with the state of TRANSPORT_DELETE, and it is root caused that
vppcom fails to return close state.

Type: fix

Change-Id: Ia30f959e0e5adb5b8bcfa13fb1dd7b2cb410a31b
Signed-off-by: Yu Ping <ping.yu@intel.com>


# ff31ac68 21-Nov-2019 jiangxiaoming <jiangxiaoming@outlook.com>

vcl: if the ldp user send buf with 0 len, it will assert failed.

Type: fix

Change-Id: I8ff60cf8726c463491c687e170ad0b1026a1303a
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>


# 592a909a 12-Nov-2019 Carl Smith <carl.smith@alliedtelesis.co.nz>

vcl: fix nonblocking accept with >1 event in the queue

We discard unwanted events until we get an ACCEPTED.
But if we are non-blocking we need to check the queue
length every time and EAGAIN if empty before waiting.

Type: fix

Signed-off-by: Carl Smith <carl.smith@alliedtelesis.co.nz>
Change-Id: Ie0c7e5cb00f0d37d2e1534f8bb384221ff56f2e3


# f1653e62 06-Nov-2019 Florin Coras <fcoras@cisco.com>

vcl: fix epoll connected events sid

Type: fix

Use sid returned by vcl_session_connected_handler instead of trying to
infer it from vpp session handle.

Change-Id: Ic0fbb90ec2bd851b435fc3f2a34265ac9a8ab29f
Signed-off-by: Florin Coras <fcoras@cisco.com>


# bd52e46f 28-Oct-2019 Florin Coras <fcoras@cisco.com>

vcl: handle rx notifications on reused sessions

Type: fix

Ignore events on sessions that have been reused but not fully
initialized.

Change-Id: Ided020eb5245d665d0a2e4a9e1f8a6dddebae009
Signed-off-by: Florin Coras <fcoras@cisco.com>


# dbc9c599 25-Sep-2019 Florin Coras <fcoras@cisco.com>

vcl: handle segment map errors

Type: fix

Change-Id: Ibd122a4565c067627c4bbc8cac7df2d5b6497392
Signed-off-by: Florin Coras <fcoras@cisco.com>


# ef7cbf6a 17-Oct-2019 Florin Coras <fcoras@cisco.com>

vcl: add api to set lcl ip

Type: feature

Change-Id: I40169fbbe8a20670dd612c341b6c78b5c925bf74
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 57c88938 29-Aug-2019 Florin Coras <fcoras@cisco.com>

vcl: allow non-blocking connects

Type: feature

Change-Id: I55349f482ce6781337f747b2f0d2c0a027c3a675
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 458089bb 21-Aug-2019 Florin Coras <fcoras@cisco.com>

session: move ctrl messages from bapi to mq

Type:refactor

Moves connect, disconnect, bind, unbind and app detach to message
queue from binary api. Simplifies app/vcl interaction with the session
layer since all session control messages are now handled over the mq.

Add/del segment messages require internal C api changes which affect all
builtin applications. They'll be moved in a different patch and might
not be back portable to 19.08.

Change-Id: I93f6d18e551b024effa75d47f5ff25f23ba8aff5
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 470b2a61 04-Aug-2019 Florin Coras <fcoras@cisco.com>

vcl: fix bapi disconnect with socket transport

Type:fix

Change-Id: I7b69c28118f3d7054a20ca48792dfc403a8e2694
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 7e5e62bb 30-Jul-2019 Florin Coras <fcoras@cisco.com>

vcl: fix epoll chain validation

Type:fix

Change-Id: I91dfe7e0ae2e632022fbf639ca16c93f570849de
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 028eaf07 19-Jul-2019 Florin Coras <fcoras@cisco.com>

vcl: fix coverity warning

Type:fix

Change-Id: I7b91ce9359f94131882ab430606586b1a6cf3e02
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 8ac1d6d0 17-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

session: Use parent_handle instead of transport_opts

Type: feature

This is mostly used for quic in the case of a stream
creation (i.e. connect on an already established QUIC
session). We want do default parent_handle to INVALID
to be able to distinguish it from parent_handle = 0

Change-Id: Id5ac0b0155a3c44e51334231b711e4fd87a96a10
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 9fd99627 16-May-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

vcl: add QUIC support

Type: feature

* Adds the concept of a "connectable listener" : a session that
can be both connected and accepted on.
* vppcom_session_is_connectable_listener (fd) that tells if the fd
is a connectable listener
* vppcom_session_listener (fd) that gives you the listener's fd
that accepted the session (if any)
* vppcom_session_n_accepted (fd) that gives the number
of sessions a listener accepted.

Change-Id: Id89d67d8339fb15a7cf7e00a9c5448175eca04fc
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 369db83f 08-Jul-2019 Florin Coras <fcoras@cisco.com>

vcl: add worker unregister api

Type:feature

Change-Id: Ie73644aed94e58d5dce822de5000183e414401df
Signed-off-by: Florin Coras <fcoras@cisco.com>


# aaff5eef 08-Jul-2019 Florin Coras <fcoras@cisco.com>

vcl: cleanup listener accept fifo

Type: fix

Change-Id: Ic470d429f4bf1924185f720d66efe06f4727bcbd
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 2d379d8c 28-Jun-2019 Florin Coras <fcoras@cisco.com>

svm: rename fifo tx notifications to reflect use

Type: refactor

Change-Id: I651db44acdcb666a9c63e1037352cf88c68795b5
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 00cca801 06-Jun-2019 Florin Coras <fcoras@cisco.com>

vcl: avoid hash table lookup on accept

Type: refactor

Change-Id: I363a97b9f5ab0dbda78e13582630e78d57fb83e7
Signed-off-by: Florin Coras <fcoras@cisco.com>


# e003a1b9 05-Jun-2019 Florin Coras <fcoras@cisco.com>

vcl: cap epoll dequeue batch size to max events

Type: fix

Change-Id: Ia9be1413cf9423552137885521cefdbecc3e5df5
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Ping Yu <ping.yu@intel.com>


# 88001c64 24-Apr-2019 Florin Coras <fcoras@cisco.com>

session: cleanup segment manager and fifo segment

Change-Id: I984f347fb465c0c405cef668d8690457e81788e2
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 09d18c2f 24-Apr-2019 Florin Coras <fcoras@cisco.com>

session: use teps in accept/connect notifications

Change-Id: I58e713661a38cecbfdebd4609292d9d12e880cd2
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 317b8e08 17-Apr-2019 Florin Coras <fcoras@cisco.com>

vcl/session: tx notifications for cut-thru sessions

Change-Id: I076c753e419bbb177d2d28609190715e9895b398
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 28aa539f 05-Feb-2019 Sirshak Das <sirshak.das@arm.com>

svm_fifo rework to avoid contention on cursize

Problems Addressed:
- Contention of cursize by producer and consumer.
- Reduce the no of modulo operations.

Changes:
- Synchronization between producer and consumer changed from cursize
to head and tail indexes
Implications: reduces the usable size of fifo by 1.
- Using weaker memory ordering C++11 atomics to access head and tail
based on producer and consumer role.
- Head and tail indexes are unsigned 32 bit integers. Additions and
subtraction on them are implicit 32 bit Modulo operation.
- Adding weaker memory ordering variants of max_enq, max_deq, is_empty
and is_full Using them appropriately in all places.

Perfomance improvement (iperf3 via Hoststack):

iperf3 Server: Marvell ThunderX2(AArch64) - iperf3 Client: Skylake(x86)
~6%(256 rxd/txd) - ~11%(2048 rxd/txd)

Change-Id: I1d484e000e437430fdd5a819657d1c6b62443018
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>


# 5e06257c 15-Mar-2019 Florin Coras <fcoras@cisco.com>

vcl: cleanup debug messages

Change-Id: Ida3ecffc9a4d7a080ad63cd48fd4b5330b732ffb
Signed-off-by: Florin Coras <fcoras@cisco.com>


# fff68f7a 13-Mar-2019 Florin Coras <fcoras@cisco.com>

vcl: fix coverity warning

Change-Id: I048276fd26e6e079ce31b9aeb1265f5d929f8540
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 14ed6df9 07-Mar-2019 Florin Coras <fcoras@cisco.com>

session/tcp/vcl: fixes and optimizations

Change-Id: Idc7dfe743399dd8dee0f6b3ec83f194f3fca580b
Signed-off-by: Florin Coras <fcoras@cisco.com>


# fe97da32 06-Mar-2019 Florin Coras <fcoras@cisco.com>

session: cleanup instances of deprecated io evts

Change-Id: Iad119e05ae5e570fbfcf66747c95822cee647c99
Signed-off-by: Florin Coras <fcoras@cisco.com>


# c0737e96 04-Mar-2019 Florin Coras <fcoras@cisco.com>

session: use session index instead of fifo for evt

Avoids derefrencing fifo pointers whose segments could have been
unmapped.

Change-Id: Ifb0b7399e424f145f3f94b769391a6f4e31bb4e6
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 653e43f0 04-Mar-2019 Florin Coras <fcoras@cisco.com>

session: use vpp to switch io events for ct sessions

Instead of allocating pairs of message queues per cut-thru session and
having the applications map them, this uses vpp as an io event message
switch.

Change-Id: I51db1c7564df479a7d1a3288342394251fd188bb
Signed-off-by: Florin Coras <fcoras@cisco.com>


# ac626264 04-Mar-2019 Florin Coras <fcoras@cisco.com>

vcl: remove unused fields and structures

Change-Id: I49a95c4e2eb17e5a6ab514dde2505294a4c01353
Signed-off-by: Florin Coras <fcoras@cisco.com>


# dfae9f93 21-Feb-2019 Florin Coras <fcoras@cisco.com>

vcl/session: send unlisten over message queue

Change-Id: I68cd6c0e6be3e8088792df3885ae190bb00462b0
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 288eaab5 03-Feb-2019 Florin Coras <fcoras@cisco.com>

session: cleanup part 1

Rename core data structures. This will break compatibility for out of
tree builtin apps.

- stream_session_t to session_t
- server_rx/tx_fifo to rx/tx_fifo
- stream_session.h to session_types.h
- update copyright

Change-Id: I414097c6e28bcbea866fbf13b8773c7db3f49325
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 6d0106e4 30-Jan-2019 Florin Coras <fcoras@cisco.com>

vcl: improve handling of close on rw

Change-Id: Ie01a37612d7e3e0d0bad0f0aa9583b3ed411f46f
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 2d675d72 28-Jan-2019 Florin Coras <fcoras@cisco.com>

vls: support passive listeners

If an application worker calls listen on a session, vpp registers the
worker to the listener's work load balance group and, as new connections
are accepted, it may potentially push accept notifications to it.

There are however applications, like nginx, that on some workers may
never accept new connections on a session they've started listening on.
To avoid accumulating accept events on such workers, this patch adds
support for passive listeners. That is, workers that have started
listening on a session but then never call accept or epoll/select on
that listener.

Change-Id: I007e6dcb54fc88a0e3aab3c6e2a3d1ef135cbd58
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 0ef8ef2b 18-Jan-2019 Florin Coras <fcoras@cisco.com>

vls: multi-process and multi-threaded apps improvements

- More fine tuning for multi-process applications.
- Experimental support for multi-thread apps. This is meant for app
whose threads are not vcl workers and the sessions are shared between
them.

Change-Id: Ie07651da5f2cdcf39f5dead5431f50ad39cf3f74
Signed-off-by: Florin Coras <fcoras@cisco.com>


# e0982e56 25-Jan-2019 Florin Coras <fcoras@cisco.com>

vcl: add api to expose worker message queues epfd

This only works if vcl is configured to do eventd based message queue
notifications, instead of condvars. For that, add "use-mq-eventfd" to
vcl startup conf.

Change-Id: Id0f0288a40ec7d3daef7370f8b88420425867ab6
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 5f45e01f 23-Jan-2019 Florin Coras <fcoras@cisco.com>

session/vcl: support worker ownership change for listeners

Change-Id: I2ad54b20b96f10b009c3e651b2a2f885577ca5b6
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 72f7782d 23-Jan-2019 Florin Coras <fcoras@cisco.com>

vcl: generate epoll events only if requested

Change-Id: I6e96607f09c18755eead2c7099e1f546bdae7b88
Signed-off-by: Florin Coras <fcoras@cisco.com>


# f9240dc9 15-Jan-2019 Florin Coras <fcoras@cisco.com>

vcl: move forking logic to vls

Change-Id: I721542aca139d7908a4f917629856f82cae79962
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 1bcad5cd 10-Jan-2019 Florin Coras <fcoras@cisco.com>

session/vcl: improve fifo tx notifications

Change-Id: Ied476c417c8ba5b4d7c615125c36eecd9ca64fbc
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 294afe29 08-Jan-2019 Florin Coras <fcoras@cisco.com>

vcl/ldp: select cleanup/improvements

Change-Id: I640e69388f2ab0f66ad60c5165c749f5a5a9f525
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 7baeb71f 05-Jan-2019 Florin Coras <fcoras@cisco.com>

vcl/ldp: add locked sessions shim layer

Moves LDP logic that allows sharing of sessions between multi-process
app workers into a separate VCL shim layer. Also refactors LDP to use
the new layer.

Change-Id: I8198b51eae7d099a8c486e36b29e3a0cb8cee8e9
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 30e79c2e 03-Jan-2019 Florin Coras <fcoras@cisco.com>

vcl/session: add api for changing session app worker

In case of multi process apps, after forking, the parent may decide to
close part or all of the sessions it shares with the child. Because the
sessions have fifos allocated in the parent's segment manager, they must
be moved to the child's segment manager.

Change-Id: I85b4c8c8545005724023ee14043647719cef61dd
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 34a3a08d 01-Dec-2018 Ping Yu <ping.yu@intel.com>

Add TLS support for VCL

Ater this patch, vcl_test_client and vcl_test_server can work happily with
TLS connection.
"-S" is to indicate TLS connection.

Change-Id: I761894b0b5929912691625f0fe63604725b55978
Signed-off-by: Ping Yu <ping.yu@intel.com>


# d9818dd6 14-Dec-2018 David Johnson <davijoh3@cisco.com>

Fixes for buliding for 32bit targets:
* u32/u64/uword mismatches
* pointer-to-int fixes
* printf formatting issues
* issues with incorrect "ULL" and related suffixes
* structure alignment and padding issues

Change-Id: I70b989007758755fe8211c074f651150680f60b4
Signed-off-by: David Johnson <davijoh3@cisco.com>


# a7a1a226 31-Dec-2018 Florin Coras <fcoras@cisco.com>

ldp/vcl: epoll and shutdown cleanup

Change-Id: I882b4c495426551fad63372dc106496c5e8c141e
Signed-off-by: Florin Coras <fcoras@cisco.com>


# b0f662fe 27-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl/ldp: add write msg function and fine tuning

Allows app to push data. Additionally, ensure reset/close replies are
not sent unless vcl closes the session.

Change-Id: Icbbf933cf57b55cfbcc7b802af0f83919a066f65
Signed-off-by: Florin Coras <fcoras@cisco.com>


# fa915f81 27-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl: handle invalid sessions in epoll

Change-Id: I62d37f3c05451e5667863a2c6c551872d5dac1ea
Signed-off-by: Florin Coras <fcoras@cisco.com>


# c227e495 22-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl: fix coverity warnings

Change-Id: I24445b08a46041c370094ebba4243422e2342a26
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 05ce4b8b 16-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl: handle reset while reading/writing data

Change-Id: I73d1dde5b78bbb7835f3a4f0d35fc0d5e46ec103
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 3c7d4f9e 14-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl/session: handle reset/disconnect before app accept

Also further improves reset handling.

Change-Id: I6e517632f700f181761726b965134e0c217eb06d
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 05ecfcc0 13-Dec-2018 Florin Coras <fcoras@cisco.com>

ldp/vcl: reduce debug verbosity

Also cleanup some ldp debug code.

Change-Id: I23d1b9d744289244f4778f623702fc2b5d6fcd8b
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 42ceddb7 12-Dec-2018 Florin Coras <fcoras@cisco.com>

session/tcp: support tx flush mark

For tcp this means that the last enqueued data goes out with a psh bit
set.

Change-Id: I29d357ecae6f02e748b59a7b799150ec73d14ba2
Signed-off-by: Florin Coras <fcoras@cisco.com>


# eaec2a6d 05-Dec-2018 Florin Coras <fcoras@cisco.com>

bapi: add options to have vpp cleanup client registration

A client can send a memclnt delete message and ask vpp to cleanup the
shared memory queue. Obviously, in this case no delete reply is sent
back to the client.

Change-Id: I9c8375093f8607680ad498a6bed0690ba02a7c3b
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 955bfbbb 04-Dec-2018 Florin Coras <fcoras@cisco.com>

ldp: avoid calling write in destructors

Change-Id: Ia9c3d7a68a23dc4ab3be06f88fdfb053db422372
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 01f3f894 02-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl: cleanup children that use _exit()

Change-Id: Ia56c2698adb0ea7811203844dc4db10e121fbc42
Signed-off-by: Florin Coras <fcoras@cisco.com>


# dc2e2513 04-Dec-2018 Florin Coras <fcoras@cisco.com>

vcl: test refactor and improvements

Change-Id: I92f415bf253d6e051ec9d94ebeb98f081b2a0293
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 940f78fc 30-Nov-2018 Florin Coras <fcoras@cisco.com>

vcl: handle worker process exit

Change-Id: Ife05d25fd736ae3064f01e974e5aecc5b48de924
Signed-off-by: Florin Coras <fcoras@cisco.com>


# adc74d7b 02-Dec-2018 Florin Coras <fcoras@cisco.com>

svm: use explicit svm fifo segment main for slaves

Change-Id: Id39d64bf1b49345a3dc31c63360569212aba6865
Signed-off-by: Florin Coras <fcoras@cisco.com>


# d85de68e 30-Nov-2018 Florin Coras <fcoras@cisco.com>

vcl: wait for segments with segment handle

Instead of waiting for notification from binary api.

Change-Id: I5ecab857d6bcdbed62d6bb06709570c4cf6b19ea
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 47c40e2d 27-Nov-2018 Florin Coras <fcoras@cisco.com>

vcl: basic support for apps that fork

- intercept fork and register a new worker with vpp
- share sessions between parent and forked child
- keep binary api state per worker

Change-Id: Ib177517d661724fa042bd2d98d18e777056352a2
Signed-off-by: Florin Coras <fcoras@cisco.com>


# dfe4cf48 29-Nov-2018 Florin Coras <fcoras@cisco.com>

ldp: basic multiworker support

Change-Id: Ia794fa7e15dac02c8607c4cee2f119ad9815c0a8
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 30e273b3 27-Nov-2018 Florin Coras <fcoras@cisco.com>

ldp: sid to fd mapper for apps with multiple workers

Change-Id: I79585cd6b467b007c3eb9a7668387ff3777de46d
Signed-off-by: Florin Coras <fcoras@cisco.com>


# c1f5a433 20-Nov-2018 Florin Coras <fcoras@cisco.com>

session: cleanup use of api_client_index

Change-Id: I8a680be62ab91d2ccb144641981a635506973a49
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 053a0e44 13-Nov-2018 Florin Coras <fcoras@cisco.com>

vcl/session: apps with process workers

Allow apps to register child processes as app workers. In particular,
on fork vcl now registers the child process with vpp as a new worker.

Change-Id: I52a65fbc3292962b1f6e1fe0f6153f739e6e0d4a
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 178cf493 13-Nov-2018 Dave Barach <dave@barachs.net>

Remove c-11 memcpy checks from perf-critical code

Change-Id: Id4f37f5d4a03160572954a416efa1ef9b3d79ad1
Signed-off-by: Dave Barach <dave@barachs.net>


# 6917b94f 14-Nov-2018 Florin Coras <fcoras@cisco.com>

vcl/ldp: fix poll

Change-Id: I8eb5546ff8634d5498d8ce5bbc9407bceb9ae3ef
Signed-off-by: Florin Coras <fcoras@cisco.com>


# aa27eb95 13-Oct-2018 Florin Coras <fcoras@cisco.com>

vcl: fix bidirectional tests (VPP-1455)

- add epoll dequeued events beyond maxevents to unhandled
- filter multiple epoll rx events

Change-Id: I618f5f02b19581473de891b3b59bb6a0faad10b5
Signed-off-by: Florin Coras <fcoras@cisco.com>


# a4878ed0 12-Oct-2018 Florin Coras <fcoras@cisco.com>

vcl: fix empty epoll returns (VPP-1453)

Change-Id: I0b191ddb749b1aa132c2d33b8359c146b36d27af
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 58c101ad 06-Oct-2018 Florin Coras <fcoras@cisco.com>

vcl: use want_tx_evt for ct sessions

Change-Id: Id46c651c41b1c633326081583ee3383e27ef475d
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 539663c4 28-Sep-2018 Florin Coras <fcoras@cisco.com>

vcl: handle old events before blocking in epoll

Change-Id: I3e62c787882d93c3bfb398ed0d04ef56b3a60b2b
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 742582f4 22-Sep-2018 Florin Coras <fcoras@cisco.com>

vcl: remove vcl_event

Change-Id: I0f805ae47f6e9465070a54d85f164bc74877af01
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 0e88e851 18-Sep-2018 Florin Coras <fcoras@cisco.com>

session/svm: add want_tx_event flag to fifo

Have applications use explicit flag to request events from vpp when it
transmits from a full fifo.

Change-Id: I687c8f050a066bd5ce739d880eaec1f286038d95
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 86f04500 12-Sep-2018 Florin Coras <fcoras@cisco.com>

vcl: keep track of unexpected events

If sessions are marked as blocking, events for other sessions received
while waiting for the blocking sessions, are added to a pending list and
processed later.

Change-Id: Ia6c71006b1c2bcb78af708390da0cd436af397cc
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 2cba8533 11-Sep-2018 Florin Coras <fcoras@cisco.com>

vcl: add apis that expos fifo as buffer

Change-Id: I4bd9c9f73499711e04b38d53daa5c917a4285bf5
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 41c9e04b 11-Sep-2018 Florin Coras <fcoras@cisco.com>

vcl: improve read and fifo event handling

Change-Id: Ic1c51818b8aa8dbd164e70bb3b7471868e5af6f6
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 2179513b 09-Sep-2018 Florin Coras <fcoras@cisco.com>

session: lock app worker mq for io events

Also fixes vcl client/server stats and closing procedure.

Change-Id: I7d5a274ea0a3c8ea13062bf61bf402248dfe1a19
Signed-off-by: Florin Coras <fcoras@cisco.com>


# de9f08b0 07-Sep-2018 Florin Coras <fcoras@cisco.com>

vcl: register workers in order

Change-Id: Ibc74e7f7587f8b17fc0dcec20cc4530b9dd4c3ca
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 6d4bb425 05-Sep-2018 Florin Coras <fcoras@cisco.com>

vcl: refactor test client to support workers

Change-Id: I7fcfddc2bc7d9a64f8aa0d57ba5d11d325a15ce1
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 14598777 05-Sep-2018 Florin Coras <fcoras@cisco.com>

vcl/session/svm: fix coverity warnings

Change-Id: I27532b3ab244dc95955e836a42b229a6e4e32818
Signed-off-by: Florin Coras <fcoras@cisco.com>


# ab2f6dbf 31-Aug-2018 Florin Coras <fcoras@cisco.com>

session: support multiple worker binds

Allows app workers to listen on the same session endpoint. Incoming
connects are spread across the workers in a round-robin fashion

Change-Id: Ib5f5817230d9abc6127a85cdbdcad70d980c0f7f
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 134a996a 28-Aug-2018 Florin Coras <fcoras@cisco.com>

vcl: add support for multi-worker apps

Add basic support for app registration of multiple workers. LDP does not
work with multi-worker apps.

Change-Id: I3fc421a2a591a077b275827463f874b261415a63
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 070453d8 25-Aug-2018 Florin Coras <fcoras@cisco.com>

vcl: remove session locks

Support for multi-worker apps will be added in future patches. This also
disables vce.

Change-Id: I43b0ed2d5daa2b3d8f8a12fb18bd89dcdfa0619d
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 60116995 27-Aug-2018 Florin Coras <fcoras@cisco.com>

vcl/session: use mq for bind replies

Change-Id: Iac6e1c32cf99c5392a29f7366401b7fc39e463e3
Signed-off-by: Florin Coras <fcoras@cisco.com>


# c9fbd66c 24-Aug-2018 Florin Coras <fcoras@cisco.com>

vcl: remove unused binary api handlers

Change-Id: Ifc36e3934574ba479f71157f797b2d0745b1d100
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 60f1fc1c 16-Aug-2018 Florin Coras <fcoras@cisco.com>

vcl: unset fifo events only in read/write

Avoids accumulation of io event messages when the receiver is slow to
read.

Change-Id: I3a713d339a6ac0781c010be1fbad5a7963ab02c6
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 99368315 02-Aug-2018 Florin Coras <fcoras@cisco.com>

vcl: support for eventfd mq signaling

- support eventfd based mq signaling. Based on configuration, vcl
epoll/select can use either condvars or epoll on mq eventfds.
- add vcl support for memfd segments
- vpp explicitly registers cut-through segments with apps/vcl
- if using eventfd, make ldp allow one call to libc_epoll_create. Needed
for the message queue epfd
- update svm_queue_t to allow blocking calls with eventfd signaling.

Change-Id: I064151ac370bbe29bb16c968bf4e3659c8286bea
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 460dce6e 27-Jul-2018 Florin Coras <fcoras@cisco.com>

vcl: add read/write udp support

Change-Id: Ie6171c12055cde6915856de340839f5da1b1b1da
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 54693d23 17-Jul-2018 Florin Coras <fcoras@cisco.com>

vcl: use events for epoll/select/read/write

Have vcl poll and wait on the event message queues as opposed to
constantly polling the session fifos. This also adds event signaling to
cut through sessions.

On the downside, because we can't wait on multiple condvars, i.e., when
we have multiple message queues because of cut-through registrations, we
do timed waits.

Change-Id: I29ade95dba449659fe46008bb1af502276a7c5fd
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 6a5adc36 04-Jul-2018 Dave Barach <dave@barachs.net>

Add config option to use dlmalloc instead of mheap

Configure w/ --enable-dlmalloc, see .../build-data/platforms/vpp.mk

src/vppinfra/dlmalloc.[ch] are slightly modified versions of the
well-known Doug Lea malloc. Main advantage: dlmalloc mspaces have no
inherent size limit.

Change-Id: I19b3f43f3c65bcfb82c1a265a97922d01912446e
Signed-off-by: Dave Barach <dave@barachs.net>


# 3c2fed51 04-Jul-2018 Florin Coras <fcoras@cisco.com>

session: use msg queue for events

Change-Id: I3c58367eec2243fe19b75be78a175c5261863e9e
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 697faeac 28-Jun-2018 Florin Coras <fcoras@cisco.com>

vcl: move binary api and cfg to separate files

Change-Id: Ib88d703bb7d4b170059960b0688352c90c5fcc39
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 7e12d949 27-Jun-2018 Florin Coras <fcoras@cisco.com>

vcl: refactor vcl session

Change-Id: Idcba72fd84128547718dd32858e8c728925a6b1d
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 0d427d8d 27-Jun-2018 Florin Coras <fcoras@cisco.com>

vcl: refactor debugging

Change-Id: I82e5239239ea24bdc97b1d59946ca0bba739f248
Signed-off-by: Florin Coras <fcoras@cisco.com>


# d239f8d1 19-Jun-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: Fix session peer and local addresses

VPP-1302: VCL does not provide local and peer addresses

Change-Id: I7ff12e57799796dfeb030b181b4c24da07dc12eb
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 7e607a73 18-Jun-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: refactor async & spinlocks

- Consolidate async code.
- Add macros for spinlocks to improve readability.

Change-Id: I2e0fd2b82ea76987aaf298a183d816c7d2ee0867
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 410bcca4 23-Mar-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL IOEvent external API callback

Change-Id: I417357b00c43b27872aa3f681335bdc1ef574eca
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# de910068 20-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: add IPv6 to socket_test.sh and make test

Change-Id: If3827828062a46f1cce43642535333f677f06e62
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# e535644d 19-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: Fix Coverity CID183003

*** CID 183003: Program hangs (LOCK)
/src/vcl/vppcom.c: 2988 in vppcom_session_accept()

Change-Id: I123b73198d305fb0226516942caa410d3647a6bc
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 0d2b0d54 06-Mar-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL API for external callback for listener/connect event

Change-Id: Ic59355683b581945d10a2df97d9b2deae87a998e
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 8d73e856 08-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: add event registration to listen session in select()

Change-Id: Ie2e8f4ec3a7ec1018e5f9ca6f28f8cb18beaa814
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 7cf80e08 09-Mar-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL event handling changes

- added vce_get_event_handler()
- added check for event before blocking on mutex in vppcom_session_accept()

Change-Id: I8e19ea5fcbaa40279cb28152b9923ca8f1328670
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 00f44cc1 07-Mar-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL refactoring

- simplified event handling and unregister
- removed fixed need to bit flip event hash key
- added spinlock for client_session_fifo (was using sessions_lockp)
- removed redundant vars

Change-Id: I3c7645da660fb5560efdc4e9347e105df9650a16
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 9a0546d8 08-Mar-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: cleanup namespace_secret env-var cfg code.

Change-Id: I9de8dd822494abe1b8701a72a9b8bede34dea8dc
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 1275651d 06-Mar-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL registration handler added to session for polling sessions

Change-Id: I5f0f3b07a7aa3f243c3d44a9a15cf0670dbb2d46
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 3cf2d640 23-Feb-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL async event handler

- provides async handling of events such as accept/connect

Change-Id: Id95947237ef16629371b3c99822059d423e2f918
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 69d01191 22-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

VCL/LDP: Suppress trace output unless debug is enabled.

Change-Id: Iaef2fe4b8c6b57d54ef6309423c9a0acba8a2f89
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# aba98ded 22-Feb-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL: Fix for vppcom_session_listen() q_len <= 0 crash

Change-Id: I089dd3855fc21b26a125ee392c7548d44b5732b8
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 9b79377a 16-Feb-2018 Keith Burns (alagalah) <alagalah@gmail.com>

vppcomm refactor

- server_[tx|rx]_fifo renamed to [tx|rx]_fifo
- is_cut_thru etc no longer required, vpp session layer works it out
- logic to flip tx/rx fifos in vppcom no longer required
- allocation of memory in vppcom no longer required (if(0) at moment for testing)
- clean up of some uneeded vars

- fixstyle

Change-Id: I266561a6e4b08edb875c98582b22616c295d5a81
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# b5a86eed 16-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: config api prefix using env var.

- Configure vpp api prefix using VCL_API_PREFIX
environment variable.
- Prepend api prefix to vpp api filename when
connecting to vpp.
- Fix stale vcl_cfg ptr after heap allocation.
- Cleanup misleading warning messages wrt.
reading the vcl config file.

Change-Id: I908c9b567ff4f6f0c21ae43a4627a1a3202a3290
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 56a0d06c 15-Feb-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VPP modified some state checking logic

Change-Id: I5daff79a31f2db33ed55edd54ce043a61f6c6209
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# c04cbf16 07-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: remove vrf from vppcom api.

Change-Id: I6d91c8051de786fb8781cd0750ea9c350036b306
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 7e2c31ab 06-Feb-2018 Dave Wallace <dwallacelf@gmail.com>

VCL: Fix type in trace output.

Change-Id: I7834e676c23a697a12a6e06111c68450ba787fc9
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# a332c46a 31-Jan-2018 Florin Coras <fcoras@cisco.com>

session: segment manager refactor

- use valloc as a 'central' segment baseva manager
- use per segment manager segment pools and use rwlocks to guard them
- add session test that exercises segment creation
- embed segment manager properties into application since they're shared
- fix rw locks

Change-Id: I761164c147275d9e8a926f1eda395e090d231f9a
Signed-off-by: Florin Coras <fcoras@cisco.com>


# bb16d3ff 29-Jan-2018 Florin Coras <fcoras@cisco.com>

vcl: fix VPPCOM_ATTR_GET_LIBC_EPFD elog

Change-Id: Idc3e8f4ee69d8871534a94d4f485e695fac81756
Signed-off-by: Florin Coras <fcoras@cisco.com>


# b384b543 15-Jan-2018 Florin Coras <fcoras@cisco.com>

session: add support for memfd segments

- update segment manager and session api to work with both flavors of
ssvm segments
- added generic ssvm slave/master init and del functions
- cleanup/refactor tcp_echo
- fixed uses of svm fifo pool as vector

Change-Id: Ieee8b163faa407da6e77e657a2322de213a9d2a0
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 4e578068 19-Jan-2018 Keith Burns (alagalah) <alagalah@gmail.com>

Event log entries for VCL

Change-Id: I8303859ef65552f64c94525c9b1112ec9a1a88d0
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 9b95425d 18-Jan-2018 Dave Wallace <dwallacelf@gmail.com>

VCL/LD_PRELOAD: Fix unfiltered debug output.

Change-Id: I625b219fe6ffd21f87a163244569a4075cd432a4
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 2167355e 19-Jan-2018 Keith Burns (alagalah) <alagalah@gmail.com>

Elog entries for VCL

Change-Id: Ica8470aaf581e69a74fe4f0fc0296ff3fb6f87d3
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 504a71f2 17-Jan-2018 Keith Burns (alagalah) <alagalah@gmail.com>

Event log entries for VCL

Change-Id: I288ecd7f39422ed900a5c6fbaf9c939ab5c06880
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 048b1d6a 04-Jan-2018 Dave Wallace <dwallacelf@gmail.com>

LD_PRELOAD: stateless LDP

- Refactor LDP to be stateless.
- Use upper bit of fd to identify
tag as VCL session.
- Clean up debug output.
- Add VCOM config env vars for
app name and sid bit.
- Add VCL get/set attributes
- Add VCL poll implementation.

Change-Id: I4603ae88254c460a024fdb79fe91c6d1ef9bc7b9
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# d3046598 16-Jan-2018 Keith Burns (alagalah) <alagalah@gmail.com>

ELOG additions for VCL

Change-Id: I61557f9ad9ca2a033ba01bd25a7a8cd4d5ce092e
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 09b2784f 05-Jan-2018 Keith Burns (alagalah) <alagalah@gmail.com>

VCL eventlog - track create/delete

Change-Id: I972b7d264e612ab04eb4671253f3654a76578e1c
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# e86a8edd 05-Jan-2018 Florin Coras <fcoras@cisco.com>

api: refactor vlibmemory

- separate client/server code for both memory and socket apis
- separate memory api code from generic vlib api code
- move unix_shared_memory_fifo to svm and rename to svm_fifo_t
- overall declutter

Change-Id: I90cdd98ff74d0787d58825b914b0f1eafcfa4dc2
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 8aa9aaff 05-Jan-2018 Keith Burns (alagalah) <alagalah@gmail.com>

Initial structure for VCL event logging.

- WIP: taking a LARGE patch and breaking into smaller chunks
- large LDP/VCL refactor in progress. This minimizes rebase.
- LARGE patch removed clib_warning()s erroneously
- VPPCOM_DEBUG checks duplicated deliberately as clib_warning()
usage will be refactored.

Change-Id: I5905ed074187fe22c9f1320fd07ffcaab3a0f63c
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>


# 9c5161ae 15-Dec-2017 Dave Wallace <dwallacelf@gmail.com>

VCL-LDPRELOAD: Fix Coverity Warning CID 178776

- Fix broken unit test code.
- Check for NULL ptr in vppcom_session_attr()
VPPCOM_ATTR_GET_*_ADDR endpoint parameters.

Change-Id: I01169edce098ee855a9cba08893c2b08c93ea6c3
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# ff6e7699 11-Dec-2017 Florin Coras <fcoras@cisco.com>

session: cleanup attach flags

Change-Id: I39d21d15677f57e10b69b8842f2cbca277abddf0
Signed-off-by: Florin Coras <fcoras@cisco.com>


# f32cff69 09-Dec-2017 Florin Coras <fcoras@cisco.com>

vcl: fix session preallocation

Change-Id: I174ba43380e97104f6721af647c699922e996f5a
Signed-off-by: Florin Coras <fcoras@cisco.com>


# c8f1ee67 30-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: add vpp api q length to config file.

Change-Id: Ibe3e6cea0ea2fc700ef0a284c8ea5fe5d5476514
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 16cb408f 29-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: drain the vpp app event queue.

Change-Id: If988b8ad33465819d0e5ab9ef92ffd69b3c7851c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 50e8bdb4 27-Nov-2017 Florin Coras <fcoras@cisco.com>

vcl: fix session handle in accept reply

Change-Id: I5afd840c07714fc457bb37f8f40e1fcc0bd11314
Signed-off-by: Florin Coras <fcoras@cisco.com>


# d2931963 25-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: include vpp context in accept session reply msg.

Change-Id: I753e94ed4630ad32b7c496cad3a3ba88a5cbd1f6
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# ee45d41a 25-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: improve debug output

- Refactor debug output to include vpp handle associated
with session id where appropriate.
- Fix vcom_connect return value on error.
- Refactor vcom_socket_epoll_pwait().
- Fix sock_test_server/client connect failure handling.

Change-Id: I2649596aa4b8a77d9bd876409a76810cb2785797
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# badeb95b 22-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: remove bogus ASSERT().

Change-Id: I810cbcd13f73c0376c6be64ce2d11404bdd1755f
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 4878cbe2 21-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: close-on-empty state transition refactoring.

- Refactor session disconnect/close state
transitions. Only remove session state
when app calls close(). Add HUP/reset
feedback by returning ECONNRESET.
- Update debug messages.
- Use VCL_LOCK_AND_GET_SESSION macro more
extensively

Change-Id: I23d372834b901a6726e6d6c1061df73ad967882f
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 9d1d73a9 20-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: Update lcl addr/port from connect session reply msg.

Change-Id: Ic738448007e49b0b36e336ffd50e800b04ad3c6d
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# dcf55ce2 16-Nov-2017 Florin Coras <fcoras@cisco.com>

vppcom: improve listener session handling

Change-Id: I86b2e2c5a655e53a915fbf62ff04ee23c86de234
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 227867f5 14-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL-LDPRELOAD: add sendfile/sendfile64 implementation.

Change-Id: If0c399269238912456d670432d7e953c9d91b9fb
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 3bd43b88 12-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: clean up disconnect_session debug output.

- Run VPP in xfce4-terminal in VCL unit tests.

Change-Id: Iba6a870617a811261de0a54fa38cdb5109ae1d07
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 0cdd5bd0 08-Nov-2017 Steven <sluong@cisco.com>

VCL/LDPRELOAD: Fix out-of-bounds access and inequality comparison coverity errors

Fixed out-of-bounds access in vcom_socket.c by limiting the copy to the
size of the address field that was passed. Truncation will occur if
the address field is not big enough.

Fixed inequality comparison in vppcom.c by using the predefined macro
MAP_FAILED.

Change-Id: I9517c29ae811d08058621bd548a352b4d4f05139
Signed-off-by: Steven <sluong@cisco.com>


# 60caa064 10-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: Fix accept state machine, EPOLLET logic.

Change-Id: I909b717e5c62e91623483bdbb93d9fe4c14f0be7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 498b3a56 09-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: Set debug output level from env var

Change-Id: Ia99047715ed652eca1aea1e4144e407f9608d59e
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# e7fa24e5 07-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: Fix error handling during heap alloc

Change-Id: Ia8ab2b8677296f3d7d4a33e1faee494926e3b509
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 2e005bbb 07-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: handle process fork.

Change-Id: I3e57d60fb5e42713effd4412288eccfa08f0be82
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# e695cb4d 03-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL_LDPRELOAD: mixed libc/vcl epoll fd's

Change-Id: Ibc82781ddef5ea0517220b9054db3d53ec348c6c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 774169bd 02-Nov-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: application proxy configuration

- Add support to configure VCL to set
application proxy transport types
and app_is_proxy flag via vcl
config file or env vars.
- Clean up debug output.
- Rename session_scope -> app_scope.

Change-Id: I6e35f3cdd84daf0112133af8f33acd0152f87ca3
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 66cf6eb4 26-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: refactor session close / disconnect.

Change-Id: Ib0797faaa3f21c7577330bb8d0e801d43e01110e
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# faf9d773 26-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL-LDPRELOAD: Fix more coverity warnings

vcom.c:
CID 178227: Logically dead code in vcom.c

vcom_socket.c:
CID 178254: Dereference after null check
CID 178250: Out-of-bounds access

vppcom.c:
CID 178252: Unused value
Suppress vppcom_session_attr() debug output.

Change-Id: I1d47bafb84fc0ad00c642392ae3cb6761fd3fb17
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 617dffae 26-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL-LDPRELOAD: Fix CID 178251 & CID 178253

- CID 178251 Dereference after null check in vcom_socket.c
- CID 178253 Logically dead code in vppcom.c

Change-Id: I2a24cd53727fec76cf1a6d60f90414ff92567818
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 8af2054b 26-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL: add session namespace support.

Change-Id: I04f1b63e66260d99c0dd180b0295a55a9b750df7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 58f464e6 25-Oct-2017 Steven <sluong@cisco.com>

VCL: Return data for recvfrom(MSG_PEEK)

Implement recvfrom(MSG_PEEK) by returning data in the provided buffer
without moving the read pointer

Change-Id: Idc1b22632d78e8a499cce7d48c15e8bab0b0bf88
Signed-off-by: Steven <sluong@cisco.com>


# ac1f96d7 24-Oct-2017 Steven <sluong@cisco.com>

VCL/LDPRELOAD: Add support for getsockopt, sendto, and recvfrom

Add support for getsockopt, sendto, and recvfrom. Not all options
for the system calls are supported yet. Only the options used by
curl and wget are supported for now.

Change-Id: I2e0ed7349a0273616b3831c201e7c117725ca287
Signed-off-by: Steven <sluong@cisco.com>


# 5c7cf1cc 24-Oct-2017 Dave Wallace <dwallacelf@gmail.com>

VCL-LDPRELOAD: statically link vppcom into libvcl-ldpreload.so

- Move VCL & VCL-LDPRELOAD source into src/vcl
- Statically link vppcom into libvcl-ldpreload.so

Change-Id: I778300b37e8b06640d9dbc01caf297edf7a6edb7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>