Age | Commit message (Collapse) | Author | Files | Lines |
|
Type: refactor
Use pending tx buffer vector to postpone dispatching of all buffers,
i.e., either generated as a result of tx events or custom tx event.
Change-Id: Ic5894c4653c338cfb04555d20857f954b245ee83
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 8a754f1a55fb16a4d42efd5c606e5a07b4afffe9)
|
|
Type: feature
Improves fairness for sessions that are snd space or pacer constrained.
Change-Id: Ida5f523090f1dcbfb17bf5116bc7917747ac8593
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit dd97a48d9fac91c7f16a31aa661dd6c968c3b760)
|
|
Type: feature
Add infra that allows transpors to enqueue pending buffers without the
need to build and manage their own pending frames. An important benefit
is the fact that buffer wire/tx ordering is ensured by session layer.
Change-Id: I764fd1693d610b321a1d0c84b648a314f14583db
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 2a7ea2ee92d6dc4800ee21323d3324a9e8449dcf)
|
|
Type: fix
Change-Id: Ifb6ead644c0273b84a5647f7923053f1db7c5a76
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 2d0b2bbb97d57cb4bac30e4f3138b70c277aee47)
|
|
Type: fix
Avoid re-dispatching new events if they've just been added to the old
events linked list.
Change-Id: Ie5d0b799eae6cebb118d97204e5111eb194c0b8e
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 45b7973dddc9f1b50d7f20cc1abe150b2ad9931f)
|
|
Type: refactor
As a result, transport-deleted is the only session state that has no
transport data structure.
Change-Id: I2da2bc4bbb141d8a7b52faae66a4733de8f8513b
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 3b5e222f8a4d0ccd4ec4eace2551491f13de85d9)
|
|
Type: feature
Change-Id: I40169fbbe8a20670dd612c341b6c78b5c925bf74
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit ef7cbf6adf1882af4d4ae8657632d4a2a59efcb2)
|
|
Type: fix
Change-Id: Icf3c73cd7eb7565ed6e1b0371da172b5408a9d36
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit ba13c3b3695cb4758848d856174b725afcc7cdb8)
|
|
VPP would fail in tcp_connection_reset() if the tls
or app session was just created.
Type: fix
Change-Id: I45d107f57e4f3fc468c15ca3392d5e1c413bd690
Signed-off-by: Zeyu Zhang <zeyu.zhang@intel.com>
(cherry picked from commit cbbc4a2558eca8d78e0bd713ff58c54e294b1819)
|
|
Type: fix
Change-Id: I51282182952a66be698226bace39626df4d67b9f
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 5afea129ed0c85f5313791d1d55fed6cdcc079c7)
|
|
Type: fix
Signed-off-by: Ryujiro Shibuya <Ryujiro.Shibuya@owmobility.com>
Change-Id: I8e1f6cbd905ad5c21aed1b2e358540d0fbd7fc47
(cherry picked from commit 2a1118411deed799e079bf34d3f6d8bccb37f8c5)
|
|
Type: fix
Connect ctrl message recently outgrew the maximum ctrl msg size, so
increase the limit. Also add static asserts for messages that could
potentially exceed the limit.
Change-Id: I0d3e32e0d4d67d7e222cff14ddba59a0c3fb8b00
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit e24a4bc023b880cb01aeaf8ffea98f44dd66ef4a)
|
|
Rest pacer on ack reception if we haven't recently sent anything.
Type: feature
Change-Id: I820bacd81b65130052dfafbfcbe6ca4553069fbc
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit c31dc31f84961033ecb6354811e0c360b6cf5f79)
|
|
Type: fix
Change-Id: Ie63b80db56febc8a16bafcdd5399b2f92b6aa437
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit 94d2da0b294b0084dd97217e79de18842f09356b)
|
|
Add heuristic that detects lost retransmitted segments and retries
sending them.
Type: feature
Change-Id: I34d1bb16799e1993779222eb2bfad4b40704159e
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit be237bf02382854118986e8ea84c7544e42023f2)
|
|
Make sure to reinitialize data before free-ing it.
Type: fix
Change-Id: I45727c456d0345204d4825ecdd9690c5ebeb5e94
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit d4aeb84c3f066b755b723163da292eab95bd1ef9)
|
|
Type: fix
Change-Id: Ie756c5477d989702e633aa0d42ca154ff32b4c9a
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
(cherry picked from commit 19e52c96dcd5f523c2b97aee56cb2e7751d4690a)
|
|
Type: fix
Third time's a charm
Change-Id: I31555a35d2b51f49a93a2a213c28896b0cad4c09
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit b5a2f7056967630c2834b0b4bf03520d96806c3e)
|
|
Type: fix
Change-Id: Iaa8045bba19cc305c84074668a20e1468d431b10
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
(cherry picked from commit 35174b428b99978503332107a9f330d8b3478bd5)
|
|
Type:fix
Change-Id: If4fce6bd9b06ed545d72df847afd6a74cdefe042
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit eef61bb81a22f4c61c01e5afc8bd3b8612a71534)
|
|
Type: fix
Change-Id: Iccc283bb98d3bb459a711ec2b74d6a32ad12903b
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 54c93cfc2556d9c6d2cf472f51d4c2866a556ef6)
|
|
Type: feature
Change-Id: I913f08383ee1c24d610c3d2aac07cef402570e2c
Signed-off-by: Damjan Marion <damarion@cisco.com>
(cherry picked from commit 7ca5aaac10e95306f74ea4afd52110dd46aa0381)
|
|
Type: fix
Change-Id: I4e2617f99064c5a96e4debae8b68716ca129ee73
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit e1e7fb88e47b0ec99d32ea0391d969542960391a)
|
|
Type: feature
If available, reuse sack scoreboard in timer triggered retransmit to
minimize spurious retransmits.
Additional changes/refactoring:
- limited transmit updates
- add sacked rxt count to scoreboard
- prr pacing of fast retransmits
- startup pacing updates
- changed loss window to flight + mss
Change-Id: I057de6a9d6401698bd1031d5cf5cfbb62f2bdf61
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 36ebcfffbc7ab0e83b4bb8dfaec16bf16cafb954)
|
|
Type: fix
Change-Id: I485d38c7d9473e2ad1cbd8e17a788ec8d29ab001
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit cac31a4a23241eb94e6982c049c0feb8b180c868)
|
|
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>
(cherry picked from commit 458089bbad9cf5bef6cf8119f23fc44e66b36ad3)
|
|
Type: fix
Change-Id: I0807f84737d5e98e69e9ed27a1de6813b2ddd138
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
(cherry picked from commit 1afa7afffad6e296a97556aa4c9482f4cd544074)
|
|
Type: feature
Provide rx notifications to builtin apps even after disconnect.
Consequently tcp connections that are past FIN_WAIT_1 can still receive
rx notifications.
This is not currently supported for external applications.
Change-Id: I529da7f7120b0e7c62c5026ac71f86d6b5196cf4
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 5c29029ef029edc96340f9eecf7fe24821f2ef2a)
|
|
Type: feature
Change-Id: I3ca27b09670716eba463d7b16771f765a1bd6dcd
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 7c8f828ba353472e27369a77574bca532147e458)
|
|
Type: feature
Change-Id: I8f02873e75c6e890f6749806d4f02547f951c8ca
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
(cherry picked from commit 1292d19c79c2fd4f09ffcc43ebf39f5d9d485c35)
|
|
Type:fix
Change-Id: I173f45bf3d90e6979675b2ac812a969539f02147
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 61a89f2b614184eeced3f67affed959897d4da18)
|
|
Type: feature
Allow session cli filtering based on thread index, transport protocol,
session state and range of session pool indices. For instance
show session thread 1 proto tcp state ready range 0 20 verbose
Shows the session ids for the first 20 tcp sessions in thread 1 that are
in ready state.
To avoid excessive output that could reasult in the worker barrier being
held by the main thread for long periods of time, the session cli will
only output:
- session ids (verbose == 1) for a maximum of 50 sessions / worker
- verbose > 1 details for a maximum of 10 sessions
Change-Id: I2cfb351b548e2e0a1d5b4345810be613e2917d17
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 5bb23ecd098eac639641e2b3d62eb8744e0efef0)
|
|
Type: feature
Change-Id: If68d07fbe8c6f7fffd2f93c7e854367082927e4f
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
(cherry picked from commit 1146ff4bcd336d8efc19405f1d83914e6115a01f)
|
|
Type: fix
Change-Id: I1dbc822061f43fcc25dfa5d1728f5c7575139f45
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 27eeb87f43d9d9dfab3d807f33fc5a4a68cb55d9)
|
|
Type: fix
show session rules tcp
vpp/src/vnet/session/application_namespace.c:34 (app_namespace_get)
assertion `! pool_is_free (app_namespace_pool, _e)' fails
Thread 1 "vpp_main" received signal SIGABRT, Aborted.
Signed-off-by: Guanghua Zhang <ghzhang@fiberhome.com>
Change-Id: I3430339a598a92d0a38826471adeb4547b0b7df4
(cherry picked from commit fcd5e12b1c879b27d9ed53c9c5b3ae98b0a04ccf)
|
|
Type: fix
in case the app requests another dequeue notification, it should not be cleared
Change-Id: I7e94e8e30ef098f87f5e7f4880af276970ee5b37
Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
(cherry picked from commit 5c89fbf28665d13a0052fc88288c1524e0e93918)
|
|
Type: fix
Change-Id: Ia362ad821db1fd506e973e1844cc3ec74703cc17
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 73cad33b56ffc08943e9c0d73ecb14466558baae)
|
|
Type: feature
This can be used to forcefully close a session. It's only available to
builtin applications for now. Transports must support the reset api
otherwise normal close is used.
Change-Id: I5e6d681cbc4c8045385e293e0e9d86fa2bf45849
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit dfb3b8771292e4c863ca266856aa2b5eb7cc7518)
|
|
Enforce that variable length fields are the last element of API messages.
Add a 'fixed' version of string type, since dealing with
multiple variable length strings turned out too painful
for the C language bindings.
The string type is now:
{
string name[64]; // NUL terminated C-string. Essentially decays to u8 name[64]
string name[]; // Variable length string with embedded len field (vl_api_string_t)
};
The latter notation could be made available to other types as well.
e.g.
{
vl_api_address_t addresses[];
}
instead of
{
u32 n_addr;
vl_api_address_t addresses[n_addr];
};
Type: fix
Change-Id: I18fa17ef47227633752ab50453e8d20a652a9f9b
Signed-off-by: Ole Troan <ot@cisco.com>
(cherry picked from commit e5ff5a36dd126ee57dca4e0b03da2f7704e0a4f5)
Signed-off-by: Ole Troan <ot@cisco.com>
|
|
Type: fix
Ticket: VPP-1736
Change-Id: I7b5566525fc30fe0d3cc8cd991960f6ed2f1fc27
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 5d8a806144fbf46c0575ef24ae081724dfbdbe75)
|
|
Type:fix
Also fix transport close while handshake is ongoing.
Change-Id: I004c56d2297d0847c2cb77202f8fba3edaacad29
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit d09236d17d86a5d50166b2017f8f30a560c6e1b8)
|
|
Type:fix
Transports like tcp may notify session layer of a close but they may
defer the connection's deletion (e.g., tcp time-wait). During that time,
transports may still want to send packets. So, unless the session has no
transport (transport-deleted state), allow the transport to send.
Change-Id: I3ae335c7b951ff64be8529a5e3f3ad790feddc84
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit a678974cc52ac61dd6094c3f6649f9e3202be1cb)
|
|
Without this the use of uc0 is racy between the current thread and the
thread that owns it and will delete it.
This also ensures we don't trigger a read event on the session before
moving it to the right thread and notifying the application.
Type: fix
Change-Id: Icb1ca3ee5805ea3c0d2d424d4b23511465deb3b6
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
(cherry picked from commit b3392334942ed5459edfa7f11e098f4eab3aa29a)
|
|
Type:refactor
Also remove tx stats. Expectation is that transports will keep track of
them.
Change-Id: I083b328d87d0ad3688b630ddb5ef97827a4dbc2b
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
Type: feature
Change-Id: Ia9a5b1a6d85c7f3f2e6db583b33b5b20029a1e88
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
Previous implementation of clib_rwlock_t used two spinlocks: one
writer lock, and one to guard the counter for the number of readers.
This implementation uses a single condition variable rw_cnt which
has the following properties:
if a writer has the rwlock, rw_cnt = -1
if the rwlock is free, rw_cnt = 0
otherwise, rw_cnt > 0 and rw_cnt = number of readers
rw_cnt will never be less than -1
Benchmarking:
The results below are the cycle counts from test_rwlock.c, configured so
that for 10000 iterations, 6 reader and 6 writer threads on separate cores
are spawned such that each writer thread increments a global counter
10000 times in each iteration. For Taishan, 4 reader and 4 writer
threads are spawned in each test.
x86 Xeon old rwlock: 12.473e8, 11.655e8, 13.201e8, 11.347e8, 13.182e8
x86 Xeon new rwlock: 5.881e8, 5.796e8, 6.536e8, 5.540e8, 5.890e8
Aarch64 ThX2* old rwlock: 9.263e7, 8.933e7, 9.074e7, 8.979e7, 9.378e7
Aarch64 ThX2* new rwlock: 7.221e7, 8.107e7, 7.515e7, 7.672e7, 7.386e7
A72 old rwlock: 3.268e6, 3.200e6, 3.086e6, 3.176e6, 3.170e6
A72 new rwlock: 1.261e6, 1.288e6, 1.251e6, 1.229e6, 1.234e6
*ThunderX2 used additional gcc options "-march=armv8.1-a+crc+crypto+lse"
Type: refactor
Change-Id: I7c347d3037b36205ab532cbcb52a374c846eb275
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>
|
|
Type:fix
Freeing mq messages in vpp (producer), if enqueueing fails, invalidates
consumer assumption that messages can be freed without a lock.
Change-Id: I748a33b8846597bdad865945d8e899346d482434
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Tal Saiag <tal.saiag@gmail.com>
|
|
Type:feature
To be used by transports overwriting the connection id.
Change-Id: Ia5dbd9dccc2e3eb62e602514b24882ddc12ff1f2
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
Type: feature
Change-Id: I5e030b23943c012d8191ff657165055d33ec87a2
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
Type: feature
Control ack generation and retransmissions with session layer scheduler.
Change-Id: Iacdf9f84ab81f44851980aa45a83e75f29be2b7b
Signed-off-by: Florin Coras <fcoras@cisco.com>
|