Age | Commit message (Collapse) | Author | Files | Lines |
|
Changed dpdk-input prefetch of vlib_buffer_t to prefetchw.
vlib_buffer_t was being prefetched without 'ownership', which may
cause a stall when the buffer is subsequently written to. This saves
4 clocks a packet when the buffer is shared a cross cores, and has no
impact when not sharing.
Type: improvement
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I317af2a38ef536022e68552351a8507861f62dad
|
|
This patch ensures that fifo segment has at least the size that was
requested during allocation.
Type: improvement
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Iea8a885ac290183e25e5c8f9163bba226c5efa15
|
|
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie2ed2554578d6a2c671c552dc2bdc081f9754eed
|
|
Check the return value and log failure in case send() fails.
Type: fix
Fixes: 31f192434660
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I1809598ff4816f67c28a88264b6524b10d7ff6ce
|
|
Type: fix
Fixes: 56f54af
Change-Id: I678ff3622640c911eefb57a9288ef95ed859eeb9
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Type: improvement
Change-Id: Ibe1f23801d5eac6d1dae61c6df1a47d59455d42e
Signed-off-by: Damjan Marion <dmarion@me.com>
|
|
Type: improvement
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Change-Id: I2f30a4f04fd9a8635ce2d259b5fd5b0c85cee8c3
|
|
Fixing the mutliarch versions of vxlan, geneve and friends. Ensures that
main struct is correctly sized for all multiarch permutations.
Type: fix
Fixes: 290526e3c
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I7c4c435763a5dcb0c3b429cd4f361d373d480c03
|
|
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I10af028b5e57b36b8015b02240f1e4e9a42d0898
|
|
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia25e671084dd2c0010c0577649bf51ba6495b6ac
|
|
On interface delete we were not removing
the lock taken by a previous ip_table_bind()
call thus preventing the VRFs to be removed.
Type: fix
Change-Id: I11abbb51a09b45cd3390b23d5d601d029c5ea485
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
|
|
Type: feature
Change-Id: Iabd76558e9c72ed8286cfeeb1fbaa4fde4832a90
Signed-off-by: Benoît Ganne <bganne@cisco.com>
|
|
Originally handshake process gets pointer to value of index peer.
In the meantime this pointer can be invalid due to resize hash table
for wireguard and passed poison value to another function.
The fixes add local variable to keep index of peer instead of value
from pointer.
Type: fix
Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
Change-Id: I1b2535c44b4f987d19077c75c778aaa5ed71a457
|
|
Type: improvement
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Iec9dacde170533ca16e8117787e62da8af69ae96
|
|
Use correct signed type to allow testing for a failure (-1) from
readlinkat().
Type: fix
Fixes: 5714a49f14
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I06f1c8d91e907c151012ff9758c6b52caca4d625
|
|
Add a hint so that it's obvious that fall through in switch statement is
intentional.
Type: fix
Fixes: 34c54dff5c
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I12271227424761fb89b03a390f626c2ab466472c
|
|
Add error handling for incomplete read.
Type: fix
Fixes: 839b1473e9
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Ibf1b2f633793510244ea1aa6af0902021aeb67ad
|
|
Add a cast to avoid coverity warning about potential integer underflow.
Type: fix
Fixes: 839b1473e9
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Iae913e51c1e25aaeca6ce70438451c640d347383
|
|
When using AddressSanitizer, pool objects are poisoned, but pool_dup()
deep copy is ok.
Type: fix
Change-Id: Id801c4ab35666474a297d885c4b92878e44feab6
Signed-off-by: Benoît Ganne <bganne@cisco.com>
|
|
Type: fix
Signed-off-by: Han Wu <wuhan9084@163.com>
Change-Id: I6ad3c313dcab5ed193c135676c1cebd0a141fea1
|
|
The current code that sends ipfix packets assumes IPv4. Modify this
so that it generates and sends packets based on whether the destination
address is IPv4 or IPv6. Where code is common across multiple places
pull it out into helper functions.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I216c6c4c1b58cacedca22019f74a38c64a368b7e
|
|
Modify the ipfix_exporter to use ip_address instead of the ipv4 specific
version. Modify the current code so that it writes into the v4 specific
part of the address, i.e. we are not yet fully supporting IPv6. For the
exporter configured via the original API (the one that is always in slot0)
we will not support IPv6 addresses.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: Ic9854ac62aaee76a7a55a958234c456fd9828c4c
|
|
Rename the local variables used when building ipfix export packets to make
it clear that they are v4 specific variables.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I3a5a623aeb0b6f2b7fcdafb3fc19c500934c529b
|
|
When a new flow-report is created the caller provides 2 callback functions.
These functions both take a pointer to the exporter, plus a pointer to the
source and dest address. However the pointers to the address are not adding
any value as these are always set to the src/dest addresses of the exporter
(which is already being passed). Remove these parameters and leave the
callback functions to get the addresses out of the exporter.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I36dec394f30e85cdca120dd8706b5d90f5e07c48
|
|
The ipfix exporter should be doing most of the work of building packets
and sending them rather than leaving every client of the exporter to do
all the work themselves. Start to move towards that by adding APIs to
get and send buffers. Store the state of this in new per thread data on
the report so that we can send with minimal use of atomics. We do need
an atomic for the sequence number in the packet though as that contains
the number of data_records sent for the 'stream', not just for a single
core. As the state is stored on the flow_report_t the caller needs to
know which report they are using, so add a field to the args struct used
to create the report that is used to pass back the report index on success.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I222b98a3f0326b3b71b11e0866a8c9736bed6dc1
|
|
Add a new API to dump all the exporters. As the destination struct
type is not the same as for the existing dump/details API no
attempt is made to use the existing code to populate the structure.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I409f80285b107a530e0e4f3c6a047a803815a0ec
|
|
The existing api set_ipfix_exporter only allows for the creation of
a single exporter. In some cases it is desirable to export data to
multiple different destinations. Allow users to create multiple
ipfix exporters to support this.
Add a new api that allows for the creation of multiple exporters, and
store them in a pool of exporters. The exporter created by the old API
will always be in index 0 of the pool. Exporters created by the new API
will be given the next available index in the pool, and will return this
index to the API caller so that they can track the exporter they created.
The collector_address is the key for the exporter, so changes can be made
by doing a further call to the API with the same collector_address.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: Id71c98cffcf8d141d890b40fb90a40b90a91d1d6
|
|
Split this api handler into 2 parts. The first is the top level handler
and the second is the internal helper function that does all the work.
This is in preparation for having a similar API that allows multiple
exporters to exist at the same time.
Type: refactor
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: Ibd4037682742f4c2f52b4cd1346d35fb2029461d
|
|
Pass an ipfix_exporter to this function so that callers can choose which
exporter they are modifying.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: Ice0ed19a57baf15b1dc85cd27fe01913e36d7f4f
|
|
The functions that work on streams were getting the set of streams
directly from flow_report_main. Modify them to take an ipfix_exporter
as an argument, and then any processing they do is only for this
exporter.
Type: refactor
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I32bd9a6ba32a15ec4d4ec9556a9b75f3d83fcd6e
|
|
Pull out the fields in flow_report_main_t that are specific to a single
exporter and move them into a new structure that represents an exporter.
Add a pool of exporters to flow_report_main_t and do a pool_get() to get
the entry at index 0, so that the existing users of the code need only
change the path at which they access the old fields and have no need to
make further code changes. In functions that were accessing the fields
that now make up the ipfix_exporter create a local var that points to the
first (always valid) exporter and use this as the base for the fields
rather than finding them from flow_report_main.
This is in preparation for supporting multiple flow_exporters.
Note that at the moment the code supports multiple 'streams' for a given
exporter, where each stream has its own source port, domain id and template
space. But all streams within an exporter have the same destination address,
so this is not the same as multiple exporters.
Type: refactor
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I49f5c7fb9e901773351d31dc8a59178c37e99301
|
|
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Idf3b49ec61bf5da498ffdd8cebab7148fce73f5f
|
|
Type: fix
Using the adjacency to modify the interface's feature arc doesn't work, since there are potentially more than one adj per-interface.
Instead have the interface, when it is created, register what the end node of the feature arc is. This end node is then also used as the interface's tx node (i.e. it is used as the adjacency's next-node).
rename adj-midhcain-tx as 'tunnel-output', that's a bit more intuitive.
There's also a fix in config string handling to:
1- prevent false sharing of strings when the end node of the arc is different.
2- call registered listeners when the end node is changed
For IPSec the consequences are that one cannot provide per-adjacency behaviour using different end-nodes - this was previously done for the no-SA and an SA with no protection. These cases are no handled in the esp-encrypt node.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: If3a83d03a3000f28820d9a9cb4101d244803d084
|
|
Type: improvement
Signed-off-by: arikachen <eaglesora@gmail.com>
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Change-Id: If8d57bcf033864935bd5e3a9912b2c1a7c712f44
|
|
In some situation, we support to deploy vpp as per host
and handler packet in container, so we use xdp to redirect
the flow.
Type: improvement
Signed-off-by: arikachen <eaglesora@gmail.com>
Change-Id: Iab42d6a0abb2b330a284d519018a90aff2fa4371
|
|
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I5b6cb8dd9db7e003a470ca4aeb8472fa7cb9a128
|
|
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9e5438a2f82762aa8a88bbacf4290151ef30969e
|
|
Type: improvement
make the ip_prefix_cmp take const paramenters.
plus some other miscellaneous functions.
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ib69bacfb09483a8a8f8b89900c92d3d55c354ac6
|
|
This affect udp only
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I5e05e9c77b733b9e10c14cc9ef610c9bff216fa0
|
|
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ife1e046b62bb0679419fd1346e973d0e3ea55489
|
|
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I11de851949afd90a37c102ed0c00969a4cc73df4
|
|
The node ip6_not_enabled should be marked as sibling of
ip6-drop as both are start nodes of the ip6-drop arc.
Type: fix
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I212c25444a81b11d8085ba7930ddb67b47502d5c
|
|
There are no implementations for this function so remove it.
Type: improvement
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I793b015ea1657edd1de719c2a574799aeb8b74d5
|
|
Indent sections of code properly in vec_foreach loops.
Type: style
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I90183ace164df753f3f47b6c4a6305ded21d744d
|
|
When sending the reply to the VL_API_IPFIX_EXPORTER_DUMP message the
message id has to be added to the message base.
Type: fix
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I9565be7887046739b5f309e021f34ed75c9e370e
|
|
The problem was reproducible only with icmp packet type
when det44 in, out interfaces were swapped.
Dst addr was unknown but packet has been forwarded.
Type: fix
Ticket: VPP-1958
Signed-off-by: Daniel Béreš <daniel.beres@pantheon.tech>
Change-Id: Ie446cf2ac866955cc668fe2848f954a2ef92e3fa
|
|
det44 plugin process node would only run once on
the first plugin enable call. this patch ads
the required calls into while loop in the
process node funciton.
Type: fix
Change-Id: I38c94b29fd1e2c842a1330e8628e3019f23f2b69
Signed-off-by: Filip Varga <fivarga@cisco.com>
|
|
Remove now unused computation result.
Type: fix
Fixes: 3f8b8d30cade20afa8975a5e7a6d79346cec8f3e
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Iea142cb044d31e364fdc5b8b6dd69681e77d745f
|
|
Check for possible hash lookup failure to avoid NULL dereference.
Type: fix
Fixes: e15c999c30
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Ib806b4d124be26fbccf36fe9d19af1aec63f487b
|
|
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie20dc1e369735965bd780f04cd8703c099065fcc
|