summaryrefslogtreecommitdiffstats
path: root/src/vnet/session/session_node.c
AgeCommit message (Collapse)AuthorFilesLines
2021-04-07session: fix coverity warningFlorin Coras1-5/+5
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Id2c06f49bcae1a26a2d16d58f9da7a4d3175bf3c
2021-04-06session: basic support for interrupt modeFlorin Coras1-0/+117
Experimental support for session layer interrupt mode. When enabled (use-private-rx-mqs must be set) session queue node switches to interrupt state when lightly loaded, i.e., no events and less than 1 vector/dispatch. Because transport protocols require a periodic time update, when in interrupt state the session queue node workers register a timerfd with the unix-epoll-input node that when triggered signals, i.e., wakes up, the queue node. Under light load, the timer is set to trigger every 1ms whereas if no session is allocated, the worker moves to idle state and the timeout is set to 100ms. Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I905b00777fbc025faf9c4074fce4c516cd139387
2021-04-05tcp: time infra improvementsFlorin Coras1-2/+1
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I998c0686f9f7dc556dda8b28e23bbed127d0aafc
2021-03-29svm session vcl: per app rx message queuesFlorin Coras1-25/+25
Add option to use per app private segments for app to vpp message queues, as opposed to exposing internal message queues segment. When so configured, internal message queues are still polled by the session queue node but external app message queues are handled by a new input node (appsl-rx-mqs-input) that runs in interrupt state. Signaling of the node, when mqs receive new messages, is done through eventfds epolled by worker epoll input nodes. Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Iffe8ce5a9944a56a14e6d0f492a850cb9e392d16
2021-03-26vlib: introduce vlib_get_main_by_index(), vlib_get_n_threads()Damjan Marion1-1/+1
Type: improvement Change-Id: If3da7d4338470912f37ff1794620418d928fb77f Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-03-17session: fix populating chained buffersIvan Shvedunov1-3/+5
Type: fix Signed-off-by: Ivan Shvedunov <ivan4th@gmail.com> Change-Id: I3fdc1711d508bc5b0c2f56b3bd3fb4a56056eb54
2021-03-11session tls: deq notifications for custom txFlorin Coras1-0/+4
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I6ed2104e9d79c367ca36460047586f9b632c3315
2021-02-09session: coverity fixesFlorin Coras1-2/+4
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I2828287c58115aa08c0a4297c01cea60f41f4749
2021-02-05session svm: non blocking mqFlorin Coras1-3/+2
Avoid synchronizing producers and the consumer. Instead, only use mutex or spinlock (if eventfds are configured) to synchronize producers. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ie2aafbdc2e07fced5d5e46ee2df6b30a186faa2f
2020-12-29svm vcl: allow random offsets for fifo segments in appsFlorin Coras1-2/+2
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I1658a9c19d8eae4c9a42c0a111d4ad343b8eb8a4
2020-12-29svm: allow mq attachments at random offsetsFlorin Coras1-2/+2
Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic373cd2c11272da539eb4b0db27227f36f2f9688
2020-12-04udp session: fix deq notification for dgramsFlorin Coras1-1/+4
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I1440c11fb9d962a05d877aebb4de364c86f9953e
2020-12-01session: allow small pacer burstsFlorin Coras1-1/+2
Instead of enforcing a "strict" release of data, which relies on frequent rescheduling of sessions, allow some pacer coalescing, i.e., short bursts, that can minimize load on scheduler/session layer and potentially leverage tso. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I67e38e5b8dc335bd214113b70c68c27ae92bd6da
2020-11-09vlib: fix trace number accountingBenoît Ganne1-11/+15
When using classifier to filter traces, not all packets will be traced. In that case, we should only count traced packets. Type: fix Change-Id: I87d1e217b580ebff8c6ade7860eb43950420ae78 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2020-11-03session: reduce max session node frame sizeFlorin Coras1-4/+4
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I9e6b5e245533c9ea7bb8dc4f784a31fcb0da88bd
2020-10-26session: fix feature disableFlorin Coras1-0/+2
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I69e912ddf64d8ec89f8d93e02a201781b99de0bd
2020-10-19hsa: cleanup sock server testFlorin Coras1-1/+1
Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I769174f0023d00a59bc5a03cf0a05996b616742b
2020-09-21session: use wrk instead of thread index in nodeFlorin Coras1-10/+12
Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ia36d86eb108f0651fc3af8b4dbdc2d0b49e283da
2020-08-11vcl: support inter worker rpcFlorin Coras1-0/+30
Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I664cd14c84fc5cf2ffe61efce99c95219b44fad7
2020-07-07session: fix ct listener cleanupFlorin Coras1-3/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I749f36a7062bf9b073c1b6753436c23ba326a5db
2020-05-21vcl: support connected udp listensFlorin Coras1-0/+1
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
2020-04-22session: multiple dgrams per dispatchFlorin Coras1-7/+50
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ifa4916ffeaa30039e366011109bbd2e9c91a1b0b
2020-04-20session: fix use-after-free in input nodeBenoît Ganne1-1/+2
Type: fix Change-Id: Ie60b07abe76ad166f048f5885accd7038d8153b2 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2020-04-13session: cleanup debug codeFlorin Coras1-157/+3
Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ie6c03195019fe18c547b22f4387d7f2b14b71461
2020-04-13session: adding debug eventsSrikanth Akula1-0/+11
Type: feature Enhancing the debugging capability of tcp session layer by measing time spent for various events. This is meant only for debugging purpose Signed-off-by: Srikanth Akula <srakula@cisco.com> Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I9f401881b345bcae5f7d8050338637fd47b3723b Signed-off-by: Srikanth Akula <srakula@cisco.com>
2020-04-08session: alloc exact number of bufs for multi-seg deqsSimon Zhang1-7/+23
Type: refactor Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com> Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I11cf806e22158e021a9a405eb4487a9ed6fdbccf
2020-04-07udp session: allow dgram ip fragmentationFlorin Coras1-8/+3
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ida8f9e759b4990ea6e34e71dc45bdb3b5eabc27f
2020-04-06session udp: shared local endpointsFlorin Coras1-1/+1
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ie7102355b95eefb233ec7d146e61819051a7bf07
2020-04-04session tls: support tls deschedulingFlorin Coras1-10/+11
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ieb8bb9c6deb92479fdd3e045778fe5ae4782d1ea
2020-04-04session tls: improve app transports tx schedulingFlorin Coras1-4/+26
Type: improvement - allow apps to request rescheduling of tx events via SESSION_F_CUSTOM_TX flag - limit max burst per session custom tx dispatch In tls - use the new infra to reschedule tx events - use max burst bytes as upper limit to number of bytes to be encrypted Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I544a5a3337af7ebdff3406b776adf30cf96ebf3c
2020-04-03session: improve error reportingFlorin Coras1-4/+2
Type: improvement Change-Id: I9dd850a1ce85b0adb5136233f176117e0ee38817 Signed-off-by: Florin Coras <fcoras@cisco.com>
2020-04-03session udp: fix transport flags and migrationFlorin Coras1-1/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I840d43e79b1f826380bd56485441510e45bdfc7f
2020-04-02udp session vcl: add udp iperf testFlorin Coras1-0/+7
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ib4bc2ce781887a84055a4d5cdb7f453fc7d52c79
2020-04-01session udp: support connect on listenersFlorin Coras1-0/+1
Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I6aaaec20a2b6d4c6ddfbe659d9402acc1be2f7e2
2020-03-30tcp: reuse session infra for syns and resetsFlorin Coras1-8/+15
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I71df27049ef0193578f0c42f8f8bbd5c54e4d53e
2020-03-19tcp: force deschedule if no send space availableFlorin Coras1-8/+8
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Iae9f118f710153b6c0e390265039db7434e67ed8
2020-03-19session tcp udp: consolidate transport snd apisFlorin Coras1-37/+39
Type: improvement Use only one api to retrieve transport send parameters. Additionally, allow transports to request postponing and descheduling of events. With this, tcp now requests descheduling of sessions when the connections are stuck probing for zero snd_wnd Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I722c974f3e68fa15424c519a1fffacda43af050c
2020-03-06session: fix session reschedule conditionFlorin Coras1-1/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I01441e958517e31260e67c8caea5f75d684b2711
2020-02-23session: include timer generated packets in max burstFlorin Coras1-1/+2
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic9174c92ab05b58e62b00999fe9cbf4e9292d43e
2020-02-23session: minimize number of tx eventsFlorin Coras1-8/+21
Type: improvement Unset fifo tx event only if all data has been dequeued. Avoids frequent re-scheduling of sessions as new sessions. Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I36a4c90b97e0255b88782032fb029640e6a73e90
2020-02-11session: avoid scanning new io list under loadFlorin Coras1-21/+9
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Idaa7cc26ad941be86daec4ed5920727237712f4a
2020-01-28session tcp: fix packet tracingFlorin Coras1-2/+2
Type: fix Change-Id: Ib823d016c64998779fb1d00b8aad3acb5e8340be Signed-off-by: Florin Coras <fcoras@cisco.com>
2020-01-24session: fix node runtime in pre-input queue handlerFlorin Coras1-0/+1
Call session queue node with the right node runtime instead of the pre-input node runtime. Type: fix Change-Id: I43d20bed4930fc877b187ce7ecdce62034b393c5 Signed-off-by: Florin Coras <fcoras@cisco.com>
2020-01-09session: remove io event dispatch dbg msgFlorin Coras1-4/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I166ab7b96444587a3252925d3a28505e0db52d74
2019-12-11quic: Add support for unidirectional streamsNathan Skrzypczak1-0/+1
Type: feature Change-Id: I3a642626a444504594c5e3df40dbc92df54136f0 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-12-06session: close for reset replies independent of stateFlorin Coras1-2/+2
Type: fix Change-Id: I8b8875f1dc9203dfbb443ac43df8250cbb0b1edc Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-20session tcp: support pacer idle timeoutsFlorin Coras1-3/+16
Type: feature To avoid excessive bursts, pacer must be provided with an estimated rtt for the connection. That's used to compute an idle timeout, i.e., time after which the bucket is reset to 1 mtu due to inactivity. For now, idle timeout is computed as 5% of the rtt. Change-Id: Ia0b752fe7b4ad0ce97b477fb886b0133a2321541 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-10session: re-set tx fifo event if out of buffersFlorin Coras1-1/+2
Type: fix Change-Id: I7416e827fbc5c63d082273656441c81dd6246d8a Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-11-07session: ckpair store & crypto engine as mq paramsNathan Skrzypczak1-0/+2
Type: feature This patch adds the logic to pass to connect & listen msg in the mq the following parameters * ckpair index * crypto engine (for now only used in quic) Change-Id: I7213d8b581cb4532a9a6b18c4b3fe021287b7733 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-11-05session tcp: refactor pacer timeFlorin Coras1-7/+3
Type: refactor Change-Id: Ic1c3e1f7987702cd88972acc34849dc1f585d5fe Signed-off-by: Florin Coras <fcoras@cisco.com>