Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: Id13a0b6ed54885babf679f05207170e36709d9fa
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
In avf_rxq_refill, we invoke vlib_buffer_alloc_to_ring which may fill buffers from the
end of the ring and continue to the beginning of the ring. If we fill some in the end and
continue to fill some in the beginning, but does not have enough buffers to fill the
whole request, n_alloc returns a value which is not equal to n_refill to indicate partial
refill. We don't like partial refill and invoke vlib_buffer_free to get rid of
the buffers that just got refilled. However, vlib_buffer_free API is to free the buffers
from the slot continuously. It does not know how to free some from rxq->bufs[slot], and then
continue to free the rest when it reaches the end of the ring.
The fix is to use vlib_buffer_free_from_ring which is smart enough to figure that stuff
out.
Change-Id: I93c28e0b0d8d8f22c321d1a5912e00c27b4e2e8d
Signed-off-by: Steven <sluong@cisco.com>
|
|
Change-Id: I4a1dca92a69547f8b26e9aec7574332f39e43c37
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I085615fde1f966490f30ed5d32017b8b088cfd59
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Change-Id: I622cdb969ea489d333888b90c15ab57c1820e2db
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
|
|
Change-Id: I59b8f08789f0704d6768258348e938da67e5b15b
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
|
|
Change-Id: I0b38e129ee01d212463253e5526bfc2d60fd88af
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: If7fdcdef9a9e12fdf4b7af3c95e06602e39f1e10
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I90600d000afb02e8969f3c01bcf9e4b5c10a7d39
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
|
|
Change-Id: Ib61f0299c17c0f021408ab0a44c5b54f55f8a8ec
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Iffd5c45ab242a919592a1f686f7f880936b68a1a
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Ibc59323e849810531dd0963e85493efad3b86857
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
This significantly reduces need for
...
in multiarch code. Simply constructor macros will jost create static unused
entry if CLIB_MARCH_VARIANT is defined and that will be optimized out by
compiler.
Change-Id: I17d1c4ac0c903adcfadaa4a07de1b854c7ab14ac
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I39f87ca161c891fb22462a23188982fef7c3243f
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
|
|
Change-Id: I4e774dc53b08746cd4ab42393f33676dcc78e791
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
plugin won't compile if VLIB_BUFFER_TRACE_TRAJECTORY is set. The
quad loop was OK, bug in single loop only.
Change-Id: I11262bf6a223680eeac7ed23238ceda425a02c1b
Signed-off-by: Dave Barach <dave@barachs.net>
|
|
Change-Id: I2f376a777081da131110227e760ca0069438c918
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
|
|
Change-Id: I51cc4522df2dd6682148a13e7e1903850b4b3d08
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I3a4529ff8dae70da99ec95c39ddf788c9498f478
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
|
|
- assign rx thread on interface create, not on admin up
- keep interrupts unmasked all the time as they are needed for writeback
- forward interrupt to graph dispatcher only if queue is in the interrupt mode
Change-Id: I5cc5afe24960143bef08f12d59fbd80ae0c6ccf8
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
avf_create_reply returns software index for the new interface
Change-Id: I8a6b1a1985b072efafa24eb258b1f2cb1bea1110
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
|
|
Change-Id: I0fc19dd109e569f2c407a85e8fa32758e06676b8
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
DBGvpp# set interface rx-mode AVF0/4/2/0 interrupt
set interface rx-mode AVF0/4/2/0 interrupt
DBGvpp# sh int rx
sh int rx
Thread 0 (vpp_main):
node dpdk-input:
FortyGigabitEthernet6/0/0 queue 0 (polling)
node avf-input:
AVF0/4/2/0 queue 0 (interrupt)
DBGvpp# sh int addr
sh int addr
AVF0/4/2/0 (up):
L3 133.1.1.10/24
FortyGigabitEthernet6/0/0 (dn):
VirtualEthernet0/0/0 (up):
L3 192.168.42.1/24
DBGvpp# clear run
clear run
DBGvpp# clear interfaces
clear interfaces
DBGvpp# sh int rx
sh int rx
Thread 0 (vpp_main):
node dpdk-input:
FortyGigabitEthernet6/0/0 queue 0 (polling)
node avf-input:
AVF0/4/2/0 queue 0 (interrupt)
DBGvpp# ping 133.1.1.3 repeat 1
ping 133.1.1.3 repeat 1
64 bytes from 133.1.1.3: icmp_seq=1 ttl=64 time=.6237 ms
Statistics: 1 sent, 1 received, 0% packet loss
DBGvpp# sh int
sh int
Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count
AVF0/4/2/0 5 up 9000/0/0/0 rx packets 1
rx bytes 98
tx packets 1
tx bytes 98
drops 1
ip4 1
FortyGigabitEthernet6/0/0 1 down 9000/0/0/0
VirtualEthernet0/0/0 2 up 9000/0/0/0
local0 0 down 9000/0/0/0
DBGvpp# sh run
sh run
Time 41.9, average vectors/node 1.00, last 128 main loops 0.00 per node 0.00
vector rates in 2.3858e-2, out 2.3858e-2, drop 2.3858e-2, punt 0.0000e0
Name State Calls Vectors Suspends Clocks Vectors/Call
AVF0/4/2/0-output active 1 1 0 1.24e4 1.00
AVF0/4/2/0-tx active 1 1 0 4.28e4 1.00
api-rx-from-ring any wait 0 0 2 6.94e4 0.00
avf-input interrupt wa 1 1 0 1.09e4 1.00
avf-process any wait 0 0 47 1.01e4 0.00
...
DBGvpp#
DBGvpp# set interface rx-mode AVF0/4/2/0 polling
set interface rx-mode AVF0/4/2/0 polling
DBGvpp# sh int rx
sh int rx
Thread 0 (vpp_main):
node dpdk-input:
FortyGigabitEthernet6/0/0 queue 0 (polling)
node avf-input:
AVF0/4/2/0 queue 0 (polling)
DBGvpp# ping 133.1.1.3 repeat 1
ping 133.1.1.3 repeat 1
64 bytes from 133.1.1.3: icmp_seq=1 ttl=64 time=.2038 ms
Statistics: 1 sent, 1 received, 0% packet loss
DBGvpp#
Change-Id: Ib7d2b505ae4bb74a052263af766ca37d9df7bfe4
Signed-off-by: Steven <sluong@cisco.com>
|
|
It is cheaper to get thread index from vlib_main_t if available...
Change-Id: I4582e160d06d9d7fccdc54271912f0635da79b50
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I2cb4cf2167b6e958d2e57b461848a4a189e3fda0
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Ibd3a8d28d8f1df2bc14c42e48498f6ac26081192
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
|
|
- missing RSV bit set in descriptor
- wrong buffer offset
Change-Id: I8b138266652a30a50e4541c6344e4fe3dec4d1ca
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I170d78c8e5f7e16a264c9f226a09693109aece5e
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
|
|
Change-Id: I85cfab692ae0a72277ae561cdba7dcbc1f60aca3
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I3e07070eed4948e813ad1490963c7f8ef7f4262e
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Ib121b24935d5c706cfba6e4b6d321086a38cad91
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Ibab5e27277f618ceb2d543b9d6a1a5f191e7d1db
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Ic8c5b527395fc99f1e1a72e51f8d41c9b4f415df
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
|
|
Change-Id: Ibcffee7d20dbb79720199bcd82d2353f39d5544f
Signed-off-by: Chris Luke <chrisy@flirble.org>
|
|
Change-Id: I9a0105aa2373bd4db218851b1bbee50c6b6dfc7d
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: If168a9c54baaa516ecbe78de2141f11c17aa2f53
Signed-off-by: Damjan Marion <damarion@cisco.com>
|