Compare commits

...

71 Commits

Author SHA1 Message Date
Steven Luong
70449b9b9b vlib: address vlib_error_t scaling issue
Encoding the vpp node index into the vlib_error_t as a 10-bit quantity
limits us to 1K graph nodes. Unfortunately, a few nodes need 6 bit
per-node error codes. Only a very few nodes have so many counters.

It turns out that there are about 2K total error counters in the system,
which is (approximately) the maximum error heap index.

The current (index,code) encoding limits the number of interfaces to
around 250, since each interface has two associated graph nodes and we
have about 500 "normal, interior" graph node

This patch adds an error-index to node-index map, so we can store
error heap indices directly in the vlib_buffer_t.

Type: refactor

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Ic2e91a5b344c9df3b98b264cacda246e06092a94
2019-11-25 15:05:51 +00:00
Steven Luong
ac0e98a675 vlib: convert frame_index into real pointers
The fast path almost always has to deal with the real
pointers. Deriving the frame pointer from a frame_index requires a
load of the 32bit frame_index from memory, another 64bit load of the
heap base pointer and some calculations.

Lets store the full pointer instead and do a single 64bit load only.

This helps avoiding problems when the heap is grown and frames are
allocated below vm->heap_aligned_base.

Type: refactor

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I616fe3fbe501c4e2205cd74840eb95c550603508
2019-11-20 07:37:28 -08:00
Andrew Yourtchenko
187ddfb653 acl-plugin: tuplemerge: fix a crash during soak test with split partition
Reload the hash-ready ACE vector pointer during the partition split
with each iteration, since the ACL# may change.

Change-Id: I1b001e06b52ff02ef59ca1d890f8462ca99e6634
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 9f3d3ceb0130aba2eb11a5cbd2fcef3384864fe8)
2019-10-07 09:37:21 +00:00
Steven Luong
b0da3eb983 bonding: traffic traversing the wrong interface
Missing an increment in the while loop. Hashes not stored in the array.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I603027f5a7305478f48a102ac8035ffde9102c53
(cherry picked from commit 0471cdbd3fe04a88a8b70b5f0eff0c378e19abf7)
2019-10-05 16:44:23 +00:00
Steven Luong
2961dfda40 devices: VPP crash when doing packet trace dump
VPP recycles the graph node index when the interface is deleted. Most tx graph
nodes have format_tx_function. tapcli does not. If tapcli happens to
recycle a tx graph node index which has format_tx_function, problem will arise
when showing the trace buffer which was collected for the node index that
tapcli recycles.

The fix is nothing fantasy, just add a format_tx_trace function which
does nothing in case it it called. tapcli is deprecated in 19.04. There is
no need to cherrypick this to later releases.

Type: fix
Ticket: VPP-1742

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I010b3f35e59a474cb134a8b1bc718c242e3aa93c
2019-08-14 19:21:16 -07:00
Steven Luong
f92205ff63 devices: vhost handling VHOST_USER_SET_FEATURES
Some combinations of new qemu (2.11) and old dpdk (16.10) may
send VHOST_USER_SET_FEATURES at the end of the protocol exchange
which the vhost interface is already declared up and ready.
Unfortunately, the process of VHOST_USER_SET_FEATURES will cause
the interface to go down. Not sure if it is correct or needed.
Because there is no additional messages thereafter, the hardware
interface stays down.

The fix is to check the interface again at the end of processing
VHOST_USER_SET_FEATURES. If it is up and ready, we bring back
the hardware interface.

Type: fix

Change-Id: I490cd03820deacbd8b44d8f2cb38c26349dbe3b2
Signed-off-by: Steven Luong <sluong@cisco.com>
(cherry picked from commit 545866b5b3115b7de114bdb7883f5ece59b702d4)
2019-07-23 16:53:52 +00:00
Andrew Yourtchenko
bef25c30a1 misc: 19.01.3 Release Notes
Type: docs

Change-Id: I3f9d243d6f5d99faea67c24c9bf5c42c7a4dc3b0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-07-18 13:27:32 +00:00
Neale Ranns
c2c090a4e3 ip: Punt node does not free iovecs
Type: fix
Fixes: f7a55ad74c

Change-Id: Ic3474e746887f880a8f6246bebc399715bac8e80
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit 13a6ddf353261fd0439646b71c832f4f44c9de71)
2019-07-12 06:54:27 +00:00
Wei CHEN
822dadf478 vppinfra: dlmalloc records wrong offset for tracing
Fix a bug that mheap_get_trace is called with the wrong pointer when
mspace_get_aligned allocates a chunk with alignment greater than 16
but less than 4k.

Type: fix

Change-Id: Ic3b91fc9532248482662f019bbfa073da18645ed
Signed-off-by: Wei CHEN <weichen@astri.org>
(cherry picked from commit 5e282e93ad9f961d332cac9a033be33542979848)
2019-06-18 18:44:11 +00:00
Ole Troan
ae945592b2 stats: fix memory leakage when adding / deleting interfaces
This fixes two leaks in registering errors in the stats segment.
- The error name created by vlib_register_errors() was not freed.
- Duplicate error names (when interface readded) was added to the vector.

Change-Id: If5fe371e8059cf6678fc785cbf673707b4f4a655
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
2019-06-18 13:55:11 +00:00
Dave Barach
4d0c663c0a vlib: cherry-pick "memory-trace stats-segment"
and "leak-check { <debug-cli-cmd> }"

Ticket: VPP-1703
Type: feature

Change-Id: Ie020fd7e2618284a63efbeb9895068f27c0fb9ab
Signed-off-by: Dave Barach <dave@barachs.net>
2019-06-17 20:26:50 +00:00
Dave Barach
33052bfd8c vppinfra: optimize elog_string
Add a string hash to make sure that strings in the string table are
unique. This optimization has been coded piecemeal in multiple places,
we should have made the underlying function do the work years ago.

Ticket: VPP-1707
Type: fix

Change-Id: I5010fd4926b9b80ce3a168748f6de64e333ef498
Signed-off-by: Dave Barach <dave@barachs.net>
2019-06-17 16:43:32 +00:00
Steven Luong
4221c8de59 acl vnet vlib: memory leaks
Fix memory leaks in acl, vnet, and vlib components.

Type: fix

Change-Id: I61c84ebbacbbf3215db0d4aaa7699e8d5f8df2da
Signed-off-by: Steven Luong <sluong@cisco.com>
2019-06-14 16:01:42 -07:00
Florin Coras
f61a1a8995 tcp: handle disconnects in rcv-process
Change-Id: I86b025d36aedad2bf4afd6137f5b708677720f0e
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-05-25 07:28:59 +00:00
Florin Coras
378213974e tcp: handle fin+rst in same frame
Change-Id: Ie7a6c7b92a6beeb356f01384216a4982fb3d420e
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-05-25 07:25:45 +00:00
John Lo
6af8243814 Fix congestion recovery check
Change-Id: Ia9347c8cb6175c6bec3f9c27a7e0a71c4e58fe28
Signed-off-by: John Lo <loj@cisco.com>
2019-05-24 07:16:12 -04:00
Andrew Yourtchenko
fa63602fcb 19.01.2 Release Notes
Change-Id: Ia68372d397504ede789e40e9f7e1b939d09bc81a
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-05-17 14:35:08 +00:00
Simon Zhang
84a53bc5fe Add rte_flow_validate to verify the flow before calling rte_flow_create.
Change-Id: I817580963e38bafcc53cc6502b9c58f567070244
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-05-17 12:57:27 +00:00
Dave Wallace
cfd30860fb plugins: clean up plugin descriptions
- Make plugin descriptions more consistent
  so the output of "show plugin" can be
  used in the wiki.

Change-Id: I4c6feb11e7dcc5a4cf0848eed37f1d3b035c7dda
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit 1d1985de91833a5483a6b7ee96ef4090d530a7a6)
2019-05-08 11:50:46 -04:00
Dave Barach
e1062522d5 Clean up multi-thread barrier-sync hold-down timer
Main thread: don't bother with the barrier sync hold-down timer if
none of the worker threads are busy.

Worker threads: avoid epoll_pwait (10ms timeout) when the
control-plane has been active in the last half-second.

Cherry-pick a recent dangling reference fix: pool_elt_at_index after
e.g. rx callback is required, in case the unix file pool expands.

DO NOT cherry-pick the patch into master!

Change-Id: I130dc72fd95c8a22716fa2f0f98ce35cdccc52d7
Signed-off-by: Dave Barach <dave@barachs.net>
2019-05-02 22:33:37 +00:00
Steven Luong
15c31921a6 mp_safe SW_INTERFACE_DUMP, SW_INTERFACE_DETAILS, SW_INTERFACE_TAG_ADD_DEL,
BRIDGE_DOMAIN_DUMP, CONTROL_PING, CONTROL_PING_REPLY, and show interface CLI

Change-Id: I2927573b66bb5dd134b37ffb72af0e6676750917
Signed-off-by: Steven Luong <sluong@cisco.com>
2019-05-02 19:52:31 +00:00
Florin Coras
95c5267ea1 vlib epoll: protect against clib file pool expansion
Change-Id: I320e7c2fdacb3056bc448c73fec08d9e2978ee5e
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit c67078e007c8a9b91def387ba345efa805e45fc5)
(cherry picked from commit fd2cd9c8993d646d025e05f18f36c9fc22776eb8)
2019-05-01 10:01:09 -07:00
Artem Belov
0f36ef60d8 Fix memory corruption faulting [VPP-1639]
File pool may be reallocated on epoll events processing. 
*f* pointer shows to already freed address and corrupting 
memory chunk on clib_file_t property change.

Change-Id: I751bddce27325452862b939c1a3eec2ccd9b71bb
Signed-off-by: Artem Belov <artem.belov@xored.com>
(cherry picked from commit 32b07c31876ece35cff1b9ab99a74a631a88e35a)
2019-04-19 12:17:05 +00:00
Andrew Yourtchenko
1dbebfa462 cmake: fix errors in external when building past point-release
Change-Id: I23b4816e4ef2c6a2fa825fbd063ea25ff2024151
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit e36f44ad923f4e64266fd3e4dee6e2716e687504)
2019-04-11 18:42:48 +00:00
Igor Mikhailov (imichail)
2f4c7ec46f SPAN: Add pending frame on current thread, not on main
Previously, all frames were put for next node on the main thread,
even if the execution was happening on a worker thread.

Also, refactor to use API function vnet_get_main()

Change-Id: Ibefb1b3871563a78aa30352a37b9216537e15bf7
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
(cherry picked from commit 2d6fc6b082c9b4bf9481b58f68def13792822805)
2019-03-30 04:57:24 +00:00
Neale Ranns
8d67239689 Callback functions must have the correct signature
Change-Id: I642823bdc3c7006a0b719ec1e3a9cd75b2b37253
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit 8f215b4a03a98bf94931a09b23ab0fbd8ccd1ab9)
2019-03-26 20:40:46 +00:00
Dave Barach
327fbae595 Ignore SIGTERM during the vpp boot sequence
Call setjmp and mark the setjmp context valid just prior to entering the
vpp main loop.

Change-Id: I26d5cd6a624cb2a497d81eb85a62365621b3b469
Signed-off-by: Dave Barach <dave@barachs.net>
(cherry picked from commit d1e17d00bb81659bf9e45caa62482bf7029d98f7)
2019-03-25 23:08:09 +00:00
Neale Ranns
0d961549c0 ADJ: more thorough link up check
Change-Id: I04dbfb914706b25fcc3bd6ee0d19cfdc810234ae
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit 3e2e1907d485ed321f99350dd46e6822db6ac4d4)
2019-03-24 17:28:27 +00:00
Kingwel Xie
50a392f5a0 crypto-input: fix crash bug
as this node is refactored in new style with
vlib_buffer_enqueue_to_next, we have to check if the 'count'
is greater than 0. otherise, the next_index would be invalid
then lead to a crash

Change-Id: If7c323b59c02b5c16bd9d77b65c946512cc972c1
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
(cherry picked from commit 955ee280280e09b73621119f5753a38ce5173989)
2019-03-14 08:09:46 +00:00
Simon Zhang
3e59d2eb20 Fix ASSERT usage issue in cryptodev
Change-Id: I764c6565f96e0cb9078503e54e3cf3bb3fd9ff3f
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
(cherry picked from commit a704f5b2a97346eaaeec466cda6169406a313490)
2019-03-13 13:59:42 +00:00
Neale Ranns
03982d8924 FIB: path parsing, table-id not fib-index (VPP-1586)
Change-Id: Ib27952935393163eaabf005c69b1cbc2feca2b98
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-03-13 08:29:09 +00:00
Steven Luong
ec950c23a7 vhost: potential crash in map_guest_mem using debug image
map_guest_mem may be called from worker-thread/dataplane. It has a call
to vlib_log and may crash inside vlib_log's ASSERT statement

  /* make sure we are running on the main thread to avoid use in dataplane
     code, for dataplane logging consider use of event-logger */
  ASSERT (vlib_get_thread_index () == 0);

The fix is to convert the vlib_log call in map_guest_map to event logger

Change-Id: Iaaf6d86782aa8a18d25e0209f22dc31f04668d56
Signed-off-by: Steven Luong <sluong@cisco.com>
(cherry picked from commit b0789106cb4f4c7ac529c02a5ff1ac346f0913dd)
2019-03-13 08:23:25 +00:00
Steven Luong
3938297670 vhost-user: restart vpp may cause vhost to crash
Fix a typo in vhost_user_rx_discard_packet which may cause
txvq->last_avail_idx to go wild.

Change-Id: Ifaeb58835dff9b7ea82c061442722f1dcaa5d9a4
Signed-off-by: Steven Luong <sluong@cisco.com>
2019-03-13 08:21:37 +00:00
Simon Zhang
295630deb6 fix dpdk cryptodev enable issue
Change-Id: I47d021522cfc92cfb3877449333cbf31022c06f4
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
(cherry picked from commit ef080e1f9bad884b95ef23307b0d856c971dfcc2)
2019-03-13 06:43:49 +00:00
Ole Troan
d0dcf76853 Remove local REPLY_MACRO so that socket transport works.
memif, lacp, nsh and cdp used local REPLY_MACROs.
Remove and use those in api_helper.h

Change-Id: Ib01d6ae5cff0b6f1cef90996a54b3177f0c53463
Signed-off-by: Ole Troan <ot@cisco.com>
2019-03-07 17:25:50 +00:00
Joe Zhou
67a3e2d130 assign flood_class to vnet_sw_interface_t template in subif api handle function
Change-Id: I352f4a4adcf8771c21530657efcaecb532416612
Signed-off-by: Joe Zhou <zhouyoucn@qq.com>
(cherry picked from commit 715f94ed94638ea883f919361bff7a3f46fd1d1b)
2019-03-07 14:32:53 +00:00
Dave Wallace
cbd68cb711 19.01.1 Release Notes
Change-Id: Id71e0ce821e84634d24a550188d0ed5ed7164849
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2019-03-06 15:56:36 -05:00
Damjan Marion
3262adc55c cmake: fix out-of-git-tree build
Cherry picked from master: 6077c97a

JIRA: VPP-1577

Change-Id: Ib94637ec09799c23f3179599b54a2be6e2768425
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-03-05 12:08:05 -05:00
Artem Belov
d302022440 Fix vpp crashing when attempting to run in kubernetes Pod
mmap does not fail but writing to mapped memory is causing sigbus.

Change-Id: I5135f32eede67fccb4aaa07a501cd262d254ed8d
Signed-off-by: Artem Belov <artem.belov@xored.com>
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
(cherry picked from commit f6defa113e2e10a70c5a92ce7e14b7a532154409)
2019-03-02 09:20:05 +00:00
Florin Coras
6342e48dc1 tcp: allow future acks if in window
Change-Id: I84ad1830b8db43f6031cf2876cd94f6a71216b83
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 5fd3210be3a043c12c598df3d75dbe0aa606bfe5)
2019-03-01 23:26:33 +00:00
Neale Ranns
46ee286753 IPSEC: crash on SA dump when SA are bound to tunnels
Change-Id: I1c8256af838e6d4f371549ca91b8b0a4c0c44c65
Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-02-28 12:46:07 +00:00
Damjan Marion
bad0bcd442 Fix crash in barrier sync when vlib_worker_threads is zero
Change-Id: I6819dd9dbfc15c17740bdb98b51bdd639ef8c4d2
Signed-off-by: Damjan Marion <damarion@cisco.com>
(cherry picked from commit 8343ee5665942353e57ee074da62b9d07c1c510b)
2019-02-27 15:25:21 +00:00
Klement Sekera
372a33efe8 buffer chain linearization
Rewrite vlib_buffer_chain_linearize function so that it works as intended.
Linearize buffer chains coming out of reassembly to work around some
dpdk-tx issues. Note that this is not a complete workaround
as a sufficiently large packet will still cause the resulting chain to
be too long.

Drop features from reassembly code which relies on knowing which and how
many buffers were freed during linearization, buffer counts and tracing
capabilities for these cases.

Change-Id: Ic65de53ecb5c78cd96b178033f6a576ab4060ed1
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2019-02-27 12:48:13 +01:00
Ed Kern
7f1cc2c2c1 Makefile: correct opensuse 15.0 dep naming
This covers both naming option for opensuse leap15
dep package naming

Change-Id: I2ade004e44e75c08afde0f3af42b33cd97ce0ebc
Signed-off-by: Ed Kern <ejk@cisco.com>
2019-02-27 12:48:08 +01:00
Steven Luong
5880ec02d6 vhost: VPP stalls with vhost performing control plane actions [VPP-1572]
Symptom
-------
With NDR traffic blasting at VPP, bringing up a new VM with vhost
connection to VPP causes packet drops. I am able to recreate this
problem easily using a simple setup like this.

TREX-------------- switch ---- VPP
    |---------------|  |-------|

Cause
-----
The reason for the packet drops is due to vhost holding onto the worker
barrier lock for too long in vhost_user_socket_read(). There are quite a
few of system calls inside the routine. At the end of the routine, it
unconditionally calls vhost_user_update_iface_state() for all message
types. vhost_user_update_iface_state() also unconditionally calls
vhost_user_rx_thread_placement() and vhost_user_tx_thread_placement().
vhost_user_rx_thread_placement scraps out all existing cpu/queue mappings
for the interface and creates brand new cpu/queue mappings for the
interface. This process is very disruptive and very expensive. In my
opinion, this area of code needs a makeover.

Fixes
-----
* vhost_user_socket_read() is rewritten that it should not hold
  onto the worker barrier lock for system calls, or at least minimize the
  need for doing it.
* Remove the call to vhost_user_update_iface_state as a default route at
  the end of vhost_user_socket_read(). There is only a couple of message
  types which really need to call vhost_user_update_iface_state(). We put
  the call to those message types which need it.
* Remove vhost_user_rx_thread_placement() and
  vhost_user_tx_thread_placement from vhost_user_update_iface_state().
  There is no need to repetatively change the cpu/queue mappings.
* vhost_user_rx_thread_placement() is actually quite expensive. It should
  be called only once per queue for the interface. There is no need to
  scrap the existing cpu/queue mappings and create new cpu/queue mappings
  when the additional queues becomes active/enable.
* Change to create the cpu/queue mappings for the first RX when the
  interface is created. Dont remove the cpu/queue mapping when the
  interface is disconnected. Remove the cpu/queue mapping only when the
  interface is deleted.

The create vhost user interface CLI also has some very expensive system
calls if the command is entered with the optional keyword "server"

As a bonus, This patch makes the create vhost user interface binary-api and
CLI thread safe. Do the protection for the small amount of code which is
thread unsafe.

Change-Id: I4a19cbf7e9cc37ea01286169882e5603e6d7eb77
Signed-off-by: Steven Luong <sluong@cisco.com>
(cherry picked from commit 67f935ec6eb9ec37b7d73029c5afa89cbf4a9aa2)
2019-02-22 23:41:14 +00:00
Florin Coras
d0f4dec52b tcp: free sack block list on connection cleanup
Change-Id: I7152b4ae64528082765726d5844580aad54c0c70
Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-02-22 20:44:42 +00:00
Damjan Marion
be0e482019 avf: fix eat own tail issue on tx
Change-Id: Ie14ca18bab47ac6765ff0799475d0c2a4d936f90
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-22 17:15:43 +00:00
Damjan Marion
903c21b470 physmem: keep physmem VA in 39-bit address space on x86_64
Some x86 CPUs have IOMMU capable dealing only with 39-bit address space
This patch also adds option to specify physmem base address from
startup.conf

Change-Id: I9e8abd26efb60e9c4ad54c035fb1751a4a61f4dc
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-22 16:46:08 +00:00
Damjan Marion
c41559afe5 Add no-append flag to vlib_frame_t
Change-Id: I01c4f5755d579282773ac227b0bc24f8ddbb2bd1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-02-22 11:31:43 +01:00
Neale Ranns
dc2a250f06 IP route local and connected
allow routes that are local and connected to be added via the API.
this emulates the addition of a second address in the same subnet
added to an interface.

Change-Id: Ib18a08c26956be9a07b3360664210c8cf6734c84
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit 7425f9289bdc17d330044b0df0fc31cdeeca626b)
2019-02-20 14:40:52 +00:00
Neale Ranns
4c696abc8c FIB: pass a copy the walk context
since it can realloc when new ctx are added. If
not we can get some nasty memory corruption.

Change-Id: I617709c3013acbcb8aee07dc147894f0de896555
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit 58085f2f6757e464196b283cc8335ab5cf34a012)
2019-02-20 08:53:15 +00:00
Peter Mikus
c01d7488f2 Revert "bond: problem switching from l2 to l3"
During CSIT testing we discovered that LACP tests were failing and
producing coredumps. Reverting this patch fix the problem with VPP
crashing.

This reverts commit f23890138e02d4218c828c427f687f8ecdb0e165.

Change-Id: Icf97053ce1473350add885cbebe591f7f3efcbea
Signed-off-by: Peter Mikus <pmikus@cisco.com>
2019-02-19 16:32:38 +00:00
Florin Coras
cd56f69af9 tcp: fix reset sending in syn-sent
Change-Id: I468b1015bca5f95b162fb49e904aa4e4d38db75e
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit d4c49be5e20406220cf89083c9df86c3c0761a81)
2019-02-07 16:53:01 +00:00
Yichen Wang
63132185d0 Fix borken install-dep on RHEL
Change-Id: I247cca88e33f782e1acb72eb2c0e1515faf2f030
Signed-off-by: Yichen Wang <yicwang@cisco.com>
2019-02-04 22:27:39 -08:00
Andrew Yourtchenko
67d9475ae3 19.01 Release Notes
Change-Id: I43fd3aac9039c6d551fac8607374a0ebfdc6f74a
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-01-30 21:59:49 +01:00
Klement Sekera
827d4e568b ipsec: fix check support functions
Change-Id: If94c57fbb07a7376a9f2873e1489c00b28152620
Signed-off-by: Klement Sekera <ksekera@cisco.com>
(cherry picked from commit 4fd5a9d3e6abdf61f266da8400a299fe5b0eb0ed)
2019-01-30 20:36:33 +00:00
Paul Vinciguerra
b659e28219 VTL: Fix pep8 test/test_syslog.py
Change-Id: I8894a7a8f2be117a4c1cec9ce5134a1572da7ec7
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
(cherry picked from commit 776e46d77c21899874d156a48b8d89e7133d212c)
2019-01-30 19:22:58 +00:00
Andrew Yourtchenko
02da3a792c Update version (19.01) for API changes script
Change-Id: I9c39b5076d366b3455a875df32765b2cb8f3eca2
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-01-30 18:39:56 +00:00
Andrew Yourtchenko
44f14358cf Update to doxygen documentation for release 19.01
Change-Id: Id19cefc24d391f0437a0355f5328505ec21aa58a
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-01-30 18:39:20 +00:00
Damjan Marion
9124874e2e avf: fix queue enable issue
It is actually a bitmap....

Change-Id: Ie359e085df3f371512f773600f8d7460b2232b3e
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2019-01-28 15:53:34 +01:00
Neale Ranns
b2962715e6 IP6 FIB: walk table for dump (VPP-1553)
Change-Id: Iaa57ace6df96bfacd1235c80ec7bb08e5f335530
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit 5c1f559b1bf32acd528664e7674a2d46f2aed947)
2019-01-25 15:49:05 +00:00
Steven
38befb3a53 bond: packet drops on VPP bond interface [VPP-1544]
We register callback for VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION and
VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION to add and remove the slave
interface from the bond interface accordingly. For static bonding without
lacp, one would think that it is good enough to put the slave interface into
the ective slave set as soon as it is configured. Wrong, sometimes the slave
interface is configured to be part of the bonding without ever bringing up the
hardware carrier or setting the admin state to up. In that case, we send
traffic to the "dead" slave interface.

The fix is to make sure both the carrier and admin state are up before we put
the slave into the active set for forwarding traffic.

Change-Id: I93b1c36d5481ca76cc8b87e8ca1b375ca3bd453b
Signed-off-by: Steven <sluong@cisco.com>
(cherry picked from commit e43278f75fe3188551580c7d7991958805756e2f)
2019-01-23 22:40:17 +00:00
Florin Coras
0cb68778ec ldp: add support for TCP_CONGESTION sockopts (VPP-1550)
Change-Id: I0fcf3385cc4fb96f000b84d5f880f74131c0d60f
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 0ed24e93b207850078ca7f58cd4106cc4a906952)
2019-01-21 19:34:15 +00:00
Andrew Yourtchenko
1705599efe doxygen formatting fix: prevent stray examples appearing in the docs
The 'example' keyword triggers the creation of very out-of-context
example in the "Examples" top level of documentation. Rename the
keyword in the comment so the comment is still readable, but
does not trigger the doxygen.

Change-Id: Iecbdc236918f9178a034817aa6cea7ab6b2c1654
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-01-21 16:05:28 +01:00
Florin Coras
6e5f93e70d session: add support for vrf in session unformat (VPP-1546)
Change-Id: Ic5ba751c2bd2db9af4a21d3db40cc305d1208c30
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit baee8d498830bbbf54ec76e7c0c887c6373fe985)
2019-01-20 22:57:38 +00:00
Florin Coras
a74ae5886f tcp: fix debugging without cc stats (VPP-1547)
Change-Id: I376856fcadce570bb555064435f5876eefb2befa
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 0702554639e5149d9012cc196aa43c3c8d0d7f9b)
2019-01-20 19:21:55 +00:00
Michal Cmarada
af429cb381 fix data_length in IpSec API call (VPP-1548)
Change-Id: Idb2839f6082bd2e052be2bc5417f0ebb43d1c0a6
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
2019-01-20 15:21:48 +00:00
Neale Ranns
46da5e33a3 VOM: ip-mroute inspect register handler fix
Change-Id: I57689446005da00fa064e2938cfe55a9e1cef9fc
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit d870ce441272d7057c8cb2b8f9731ebe41a17f0a)
2019-01-20 10:27:57 +00:00
Florin Coras
cbb4565c88 tcp: allow data in passive open ack (VPP-1545)
Change-Id: Iceb99d3f8b7029bd1b1e9ebafb1e0b3790c573e4
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 865872ebdb2bbaf3f157e2a9889405b84114d2eb)
2019-01-18 22:10:24 +00:00
Paul Vinciguerra
48872780e8 VTL: Use latest version of syslog_rfc5424_parser (0.2.0) released: 190117
Upstream changes not compatable with: https://gerrit.fd.io/r/#/c/16797/

Running tests using custom test runner
Active filters: file=test_syslog.py, class=None, function=None
Adding tests from directory tree /vpp/test
1 out of 914 tests match specified filters
Not running extended tests (some tests will be skipped)
==============================================================================
Syslog Protocol Test Cases
==============================================================================
Syslog Protocol test                                                     OK

==============================================================================
TEST RESULTS:
     Scheduled tests: 1
      Executed tests: 1
        Passed tests: 1
==============================================================================

Test run was successful

Change-Id: I42f86ae3e7f062c0343025ba16bc6e8d2c34ed50
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
(cherry picked from commit 5011c67058c3c37d344c5d83ab6046700327b7b4)
2019-01-18 17:29:57 +00:00
Andrew Yourtchenko
3e2bc759f4 Initial changes for stable/1901 branch
This patch adds an entry for the defaultbranch in .gitreview

Change-Id: I3dc45492ec51b10524b0a6d894c7e42c352f0daa
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2019-01-16 19:26:41 +01:00
128 changed files with 1951 additions and 1214 deletions

View File

@ -2,3 +2,4 @@
host=gerrit.fd.io
port=29418
project=vpp
defaultbranch=stable/1901

View File

@ -133,8 +133,7 @@ ifeq ($(SUSE_NAME),Tumbleweed)
RPM_SUSE_PYTHON_DEPS += python2-ply python2-virtualenv
endif
ifeq ($(SUSE_ID),15.0)
RPM_SUSE_DEVEL_DEPS = libboost_headers1_68_0-devel-1.68.0 libboost_thread1_68_0-devel-1.68.0 gcc6
RPM_SUSE_PYTHON_DEPS += python2-ply python2-virtualenv
RPM_SUSE_DEVEL_DEPS = libboost_headers-devel libboost_thread-devel gcc6
else
RPM_SUSE_DEVEL_DEPS += libboost_headers1_68_0-devel-1.68.0 gcc6
RPM_SUSE_PYTHON_DEPS += python-virtualenv
@ -143,8 +142,8 @@ endif
ifeq ($(OS_ID),opensuse-leap)
ifeq ($(SUSE_ID),15.0)
RPM_SUSE_DEVEL_DEPS = libboost_headers-devel libboost_thread-devel gcc6
RPM_SUSE_PYTHON_DEPS += python2-ply python2-virtualenv
RPM_SUSE_DEVEL_DEPS = libboost_headers-devel libboost_thread-devel gcc
RPM_SUSE_PYTHON_DEPS += python3-ply python2-virtualenv
endif
endif
@ -295,6 +294,9 @@ endif
else ifneq ("$(wildcard /etc/redhat-release)","")
ifeq ($(OS_ID),rhel)
@sudo -E yum-config-manager --enable rhel-server-rhscl-7-rpms
@sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
@sudo -E yum install $(CONFIRM) $(RPM_DEPENDS)
@sudo -E debuginfo-install $(CONFIRM) glibc openssl-libs mbedtls-devel zlib
else ifeq ($(OS_ID),centos)
@sudo -E yum install $(CONFIRM) centos-release-scl-rh
@sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@ MAKE ?= make
MAKE_ARGS ?= -j
BUILD_DIR ?= $(CURDIR)/_build
INSTALL_DIR ?= $(CURDIR)/_install
PKG_VERSION ?= $(shell git describe --abbrev=0 | cut -d- -f1 | cut -dv -f2)
PKG_VERSION ?= $(shell git describe --abbrev=0 | cut -d- -f1 | cut -dv -f2 | cut -d. -f1,2)
PKG_SUFFIX ?= $(shell git log --oneline v$(PKG_VERSION)-rc0.. . | wc -l)
JOBS := $(if $(shell [ -f /proc/cpuinfo ] && head /proc/cpuinfo),\
$(shell grep -c ^processor /proc/cpuinfo), 2)

View File

@ -4,6 +4,7 @@ Test Framework Documentation {#test_framework_doc}
PyDoc generated documentation for the "make test" framework is available for
the following releases:
- [Test framework documentation for VPP 19.01](https://docs.fd.io/vpp/19.01/vpp_make_test/html)
- [Test framework documentation for VPP 18.10](https://docs.fd.io/vpp/18.10/vpp_make_test/html)
- [Test framework documentation for VPP 18.07](https://docs.fd.io/vpp/18.07/vpp_make_test/html)
- [Test framework documentation for VPP 18.04](https://docs.fd.io/vpp/18.04/vpp_make_test/html)

View File

@ -1,8 +1,8 @@
#!/usr/bin/env python
import os, fnmatch, subprocess
starttag = 'v18.10-rc0'
endtag = 'v18.10'
starttag = 'v19.01-rc0'
endtag = 'v19.01'
emit_md = True
apifiles = []

View File

@ -632,7 +632,8 @@ ip_mroute::dump(std::ostream& os)
ip_mroute::event_handler::event_handler()
{
OM::register_listener(this);
inspect::register_handler({ "ip-route" }, "ip route configurations", this);
inspect::register_handler({ "ip-mroute" },
"ip multicast route configurations", this);
}
void

View File

@ -87,16 +87,6 @@ foreach(DIR ${SUBDIRS})
add_subdirectory(${DIR})
endforeach()
##############################################################################
# packaging
##############################################################################
include(cmake/pack.cmake)
add_vpp_packaging(
NAME "vpp"
VENDOR "fd.io"
DESCRIPTION "Vector Packet Processor"
)
##############################################################################
# detect if we are inside git repo and add configure dependency
##############################################################################
@ -105,6 +95,7 @@ execute_process(
COMMAND git rev-parse --show-toplevel
OUTPUT_VARIABLE VPP_GIT_TOPLEVEL_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
if (VPP_GIT_TOPLEVEL_DIR)

View File

@ -320,7 +320,7 @@ VLIB_INIT_FUNCTION (abf_api_init);
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "ACL based Forwarding",
.description = "Access Control List (ACL) Based Forwarding",
};
/* *INDENT-ON* */

View File

@ -92,7 +92,7 @@ _(ACL_PLUGIN_GET_CONN_TABLE_MAX_ENTRIES,acl_plugin_get_conn_table_max_entries)
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "Access Control Lists",
.description = "Access Control Lists (ACL)",
};
/* *INDENT-ON* */

View File

@ -1511,9 +1511,11 @@ split_partition(acl_main_t *am, u32 first_index,
clib_memset(&the_max_tuple, 0, sizeof(the_max_tuple));
int i=0;
collision_match_rule_t *colliding_rules = pae->colliding_rules;
u64 collisions = vec_len(pae->colliding_rules);
for(i=0; i<collisions; i++){
/* reload the hash acl info as it might be a different ACL# */
pae = vec_elt_at_index((*applied_hash_aces), colliding_rules[i].applied_entry_index);
ha = vec_elt_at_index(am->hash_acl_infos, pae->acl_index);
DBG( "TM-collision: base_ace:%d (ace_mask:%d, first_collision_mask:%d)",
@ -1563,8 +1565,6 @@ split_partition(acl_main_t *am, u32 first_index,
if(mask->pkt.as_u64 > max_tuple->pkt.as_u64)
max_tuple->pkt.as_u64 = mask->pkt.as_u64;
}
pae = pae->next_applied_entry_index == ~0 ? 0 : vec_elt_at_index((*applied_hash_aces), pae->next_applied_entry_index);
}
/* Computing field with max difference between (min/max)_mask */
@ -1691,15 +1691,19 @@ split_partition(acl_main_t *am, u32 first_index,
u32 r_ace_index = first_index;
int repopulate_count = 0;
// for(i=0; i<collisions; i++){
for(r_ace_index=0; r_ace_index < vec_len((*applied_hash_aces)); r_ace_index++) {
collision_match_rule_t *temp_colliding_rules = vec_dup(colliding_rules);
collisions = vec_len(temp_colliding_rules);
for(i=0; i<collisions; i++){
r_ace_index = temp_colliding_rules[i].applied_entry_index;
applied_hash_ace_entry_t *pop_pae = vec_elt_at_index((*applied_hash_aces), r_ace_index);
ha = vec_elt_at_index(am->hash_acl_infos, pop_pae->acl_index);
DBG( "TM-Population-collision: base_ace:%d (ace_mask:%d, first_collision_mask:%d)",
pop_pae->ace_index, pop_pae->mask_type_index, coll_mask_type_index);
if(pop_pae->mask_type_index != coll_mask_type_index) continue;
u32 next_index = pop_pae->next_applied_entry_index;
ASSERT(pop_pae->mask_type_index == coll_mask_type_index);
ace_info = vec_elt_at_index(ha->rules, pop_pae->hash_ace_info_index);
mte = vec_elt_at_index(am->ace_mask_type_pool, ace_info->base_mask_type_index);
@ -1721,8 +1725,8 @@ split_partition(acl_main_t *am, u32 first_index,
activate_applied_ace_hash_entry(am, lc_index, applied_hash_aces, r_ace_index);
r_ace_index = next_index;
}
vec_free(temp_colliding_rules);
DBG( "TM-Populate new partition-END");
DBG( "TM-split_partition - END");

View File

@ -727,6 +727,7 @@ acl_fa_session_cleaner_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
}
else
{
clib_bitmap_free (pw0->pending_clear_sw_if_index_bitmap);
if (clear_all)
{
/* if we need to clear all, then just clear the interfaces that we are servicing */

View File

@ -653,14 +653,19 @@ clib_error_t *
avf_op_enable_queues (vlib_main_t * vm, avf_device_t * ad, u32 rx, u32 tx)
{
virtchnl_queue_select_t qs = { 0 };
int i;
int i = 0;
qs.vsi_id = ad->vsi_id;
qs.rx_queues = rx;
qs.tx_queues = tx;
for (i = 0; i < ad->n_rx_queues; i++)
while (rx)
{
avf_rxq_t *rxq = vec_elt_at_index (ad->rxqs, i);
avf_reg_write (ad, AVF_QRX_TAIL (i), rxq->n_enqueued);
if (rx & (1 << i))
{
avf_rxq_t *rxq = vec_elt_at_index (ad->rxqs, i);
avf_reg_write (ad, AVF_QRX_TAIL (i), rxq->n_enqueued);
rx &= ~(1 << i);
}
i++;
}
return avf_send_to_pf (vm, ad, VIRTCHNL_OP_ENABLE_QUEUES, &qs,
sizeof (virtchnl_queue_select_t), 0, 0);
@ -850,10 +855,8 @@ avf_device_init (vlib_main_t * vm, avf_main_t * am, avf_device_t * ad,
if ((error = avf_op_add_eth_addr (vm, ad, 1, ad->hwaddr)))
return error;
if ((error = avf_op_enable_queues (vm, ad, ad->n_rx_queues, 0)))
return error;
if ((error = avf_op_enable_queues (vm, ad, 0, ad->n_tx_queues)))
if ((error = avf_op_enable_queues (vm, ad, pow2_mask (ad->n_rx_queues),
pow2_mask (ad->n_tx_queues))))
return error;
ad->flags |= AVF_DEVICE_F_INITIALIZED;

View File

@ -402,7 +402,7 @@ no_more_desc:
vlib_frame_t *f;
ethernet_input_frame_t *ef;
nf = vlib_node_runtime_get_next_frame (vm, node, next_index);
f = vlib_get_frame (vm, nf->frame_index);
f = vlib_get_frame (vm, nf->frame);
f->flags = ETH_INPUT_FRAME_F_SINGLE_SW_IF_IDX;
ef = vlib_frame_scalar_args (f);
@ -411,6 +411,7 @@ no_more_desc:
if ((or_qw1 & AVF_RXD_ERROR_IPE) == 0)
f->flags |= ETH_INPUT_FRAME_F_IP4_CKSUM_OK;
vlib_frame_no_append (f);
}
n_left_to_next -= n_rx_packets;

View File

@ -45,6 +45,9 @@ avf_tx_enqueue (vlib_main_t * vm, avf_txq_t * txq, u32 * buffers,
/* avoid ring wrap */
n_desc_left = txq->size - clib_max (txq->next, txq->n_enqueued + 8);
if (n_desc_left == 0)
return 0;
while (n_packets_left && n_desc_left)
{
u32 or_flags;
@ -140,7 +143,7 @@ VNET_DEVICE_CLASS_TX_FN (avf_device_class) (vlib_main_t * vm,
avf_txq_t *txq = vec_elt_at_index (ad->txqs, qid % ad->num_queue_pairs);
u32 *buffers = vlib_frame_vector_args (frame);
u16 n_enq, n_left;
u16 n_retry = 5;
u16 n_retry = 2;
clib_spinlock_lock_if_init (&txq->lock);
@ -158,10 +161,11 @@ retry:
if (slot == 0)
break;
complete_slot = slot[0];
if (avf_tx_desc_get_dtyp (txq->descs + complete_slot) != 0x0F)
if (avf_tx_desc_get_dtyp (txq->descs + slot[0]) != 0x0F)
break;
complete_slot = slot[0];
clib_ring_deq (txq->rs_slots);
}

View File

@ -22,7 +22,7 @@
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "Intel Adaptive Virtual Function (AVF) Device Plugin",
.description = "Intel Adaptive Virtual Function (AVF) Device Driver",
};
/* *INDENT-ON* */

View File

@ -47,29 +47,8 @@
#include <cdp/cdp_all_api_h.h>
#undef vl_api_version
/*
* A handy macro to set up a message reply.
* Assumes that the following variables are available:
* mp - pointer to request message
* rmp - pointer to reply message type
* rv - return value
*/
#define REPLY_MACRO(t) \
do { \
unix_shared_memory_queue_t * q = \
vl_api_client_index_to_input_queue (mp->client_index); \
if (!q) \
return; \
\
rmp = vl_msg_api_alloc (sizeof (*rmp)); \
rmp->_vl_msg_id = ntohs((t)+cm->msg_id_base); \
rmp->context = mp->context; \
rmp->retval = ntohl(rv); \
\
vl_msg_api_send_shmem (q, (u8 *)&rmp); \
} while(0);
#define REPLY_MSG_ID_BASE cm->msg_id_base
#include <vlibapi/api_helper_macros.h>
/* List of message types that this plugin understands */
@ -210,6 +189,7 @@ VLIB_INIT_FUNCTION (cdp_init);
VLIB_PLUGIN_REGISTER () =
{
.version = VPP_BUILD_VER,
.description = "Cisco Discovery Protocol (CDP)",
};
/* *INDENT-ON* */

View File

@ -209,12 +209,23 @@ dpdk_flow_add (dpdk_device_t * xd, vnet_flow_t * f, dpdk_flow_entry_t * fe)
vec_add2 (actions, action, 1);
action->type = RTE_FLOW_ACTION_TYPE_END;
rv = rte_flow_validate (xd->device_index, &ingress, items, actions,
&xd->last_flow_error);
if (rv != 0)
{
if (rv == -EINVAL)
rv = VNET_FLOW_ERROR_NOT_SUPPORTED;
else if (rv == -EEXIST)
rv = VNET_FLOW_ERROR_ALREADY_EXISTS;
else
rv = VNET_FLOW_ERROR_INTERNAL;
goto done;
}
fe->handle = rte_flow_create (xd->device_index, &ingress, items, actions,
&xd->last_flow_error);
if (!fe->handle)
rv = VNET_FLOW_ERROR_NOT_SUPPORTED;
done:
vec_free (items);
vec_free (actions);

View File

@ -376,7 +376,7 @@ dpdk_device_input (vlib_main_t * vm, dpdk_main_t * dm, dpdk_device_t * xd,
vlib_frame_t *f;
ethernet_input_frame_t *ef;
nf = vlib_node_runtime_get_next_frame (vm, node, next_index);
f = vlib_get_frame (vm, nf->frame_index);
f = vlib_get_frame (vm, nf->frame);
f->flags = ETH_INPUT_FRAME_F_SINGLE_SW_IF_IDX;
ef = vlib_frame_scalar_args (f);
@ -389,6 +389,7 @@ dpdk_device_input (vlib_main_t * vm, dpdk_main_t * dm, dpdk_device_t * xd,
if (xd->flags & DPDK_DEVICE_FLAG_RX_IP4_CKSUM &&
(or_flags & PKT_RX_IP_CKSUM_BAD) == 0)
f->flags |= ETH_INPUT_FRAME_F_IP4_CKSUM_OK;
vlib_frame_no_append (f);
}
n_left_to_next -= n_rx_packets;
vlib_put_next_frame (vm, node, next_index, n_left_to_next);

View File

@ -166,6 +166,10 @@ dpdk_crypto_dequeue (vlib_main_t * vm, vlib_node_runtime_t * node,
res->qp_id + outbound,
ops, VLIB_FRAME_SIZE);
/* no op dequeued, do not proceed */
if (n_deq == 0)
return 0;
res->inflights[outbound] -= n_ops;
dpdk_crypto_input_trace (vm, node, ops, n_deq);
@ -183,14 +187,14 @@ dpdk_crypto_dequeue (vlib_main_t * vm, vlib_node_runtime_t * node,
CLIB_PREFETCH (ops[6], CLIB_CACHE_LINE_BYTES, LOAD);
CLIB_PREFETCH (ops[7], CLIB_CACHE_LINE_BYTES, LOAD);
CLIB_PREFETCH (crypto_op_get_priv (ops[4]), CLIB_CACHE_LINE_BYTES,
LOAD);
CLIB_PREFETCH (crypto_op_get_priv (ops[5]), CLIB_CACHE_LINE_BYTES,
LOAD);
CLIB_PREFETCH (crypto_op_get_priv (ops[6]), CLIB_CACHE_LINE_BYTES,
LOAD);
CLIB_PREFETCH (crypto_op_get_priv (ops[7]), CLIB_CACHE_LINE_BYTES,
LOAD);
CLIB_PREFETCH (crypto_op_get_priv (ops[4]),
CLIB_CACHE_LINE_BYTES, LOAD);
CLIB_PREFETCH (crypto_op_get_priv (ops[5]),
CLIB_CACHE_LINE_BYTES, LOAD);
CLIB_PREFETCH (crypto_op_get_priv (ops[6]),
CLIB_CACHE_LINE_BYTES, LOAD);
CLIB_PREFETCH (crypto_op_get_priv (ops[7]),
CLIB_CACHE_LINE_BYTES, LOAD);
}
op0 = ops[0];

View File

@ -1041,12 +1041,15 @@ dpdk_ipsec_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
}
ipsec_register_esp_backend (vm, im, "dpdk backend",
"dpdk-esp4-encrypt",
"dpdk-esp4-decrypt",
"dpdk-esp6-encrypt",
"dpdk-esp6-decrypt",
dpdk_ipsec_check_support, add_del_sa_session);
u32 idx = ipsec_register_esp_backend (vm, im, "dpdk backend",
"dpdk-esp4-encrypt",
"dpdk-esp4-decrypt",
"dpdk-esp6-encrypt",
"dpdk-esp6-decrypt",
dpdk_ipsec_check_support,
add_del_sa_session);
int rv = ipsec_select_esp_backend (im, idx);
ASSERT (rv == 0);
vlib_node_t *node = vlib_get_node_by_name (vm, (u8 *) "dpdk-crypto-input");
ASSERT (node);

View File

@ -1188,7 +1188,7 @@ VLIB_API_INIT_FUNCTION (gbp_init);
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "Group Based Policy",
.description = "Group Based Policy (GBP)",
};
/* *INDENT-ON* */

View File

@ -1105,7 +1105,7 @@ VLIB_INIT_FUNCTION (gtpu_init);
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "GTPv1-U",
.description = "GPRS Tunnelling Protocol, User Data (GTPv1-U)",
};
/* *INDENT-ON* */

View File

@ -498,7 +498,7 @@ VLIB_INIT_FUNCTION (igmp_init);
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "IGMP messaging",
.description = "Internet Group Management Protocol (IGMP)",
};
/* *INDENT-ON* */

View File

@ -824,7 +824,7 @@ ila_interface (u32 sw_if_index, u8 disable)
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "Identifier-locator addressing for IPv6",
.description = "Identifier Locator Addressing (ILA) for IPv6",
};
/* *INDENT-ON* */

View File

@ -409,7 +409,7 @@ VLIB_CLI_COMMAND (ip6_show_ioam_trace_cmd, static) = {
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "Inbound OAM",
.description = "Inbound Operations, Administration, and Maintenance (OAM)",
};
/* *INDENT-ON* */

View File

@ -148,7 +148,7 @@ VLIB_API_INIT_FUNCTION (l2e_init);
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "L2 Emulation",
.description = "Layer 2 (L2) Emulation",
};
/* *INDENT-ON* */

View File

@ -408,7 +408,7 @@ VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION (lacp_hw_interface_up_down);
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "Link Aggregation Control Protocol",
.description = "Link Aggregation Control Protocol (LACP)",
};
/* *INDENT-ON* */

View File

@ -50,42 +50,8 @@
#include <lacp/lacp_all_api_h.h>
#undef vl_api_version
/*
* A handy macro to set up a message reply.
* Assumes that the following variables are available:
* mp - pointer to request message
* rmp - pointer to reply message type
* rv - return value
*/
#define REPLY_MACRO(t) \
do { \
svm_queue_t * q = \
vl_api_client_index_to_input_queue (mp->client_index); \
if (!q) \
return; \
\
rmp = vl_msg_api_alloc (sizeof (*rmp)); \
rmp->_vl_msg_id = htons ((t)+lm->msg_id_base); \
rmp->context = mp->context; \
rmp->retval = htonl (rv); \
\
vl_msg_api_send_shmem (q, (u8 *)&rmp); \
} while(0);
#define REPLY_MACRO2(t, body) \
do { \
svm_queue_t * q = \
vl_api_client_index_to_input_queue (mp->client_index); \
if (!q) \
return; \
\
rmp = vl_msg_api_alloc (sizeof (*rmp)); \
rmp->_vl_msg_id = htons ((t)+lm->msg_id_base); \
rmp->context = mp->context; \
rmp->retval = htonl (rv); \
do {body;} while (0); \
vl_msg_api_send_shmem (q, (u8 *)&rmp); \
} while(0);
#define REPLY_MSG_ID_BASE lm->msg_id_base
#include <vlibapi/api_helper_macros.h>
#define foreach_lacp_plugin_api_msg \
_(SW_INTERFACE_LACP_DUMP, sw_interface_lacp_dump)

View File

@ -1238,7 +1238,7 @@ int lb_vip_del(u32 vip_index)
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
.description = "Load Balancer",
.description = "Load Balancer (LB)",
};
/* *INDENT-ON* */

Some files were not shown because too many files have changed in this diff Show More