Commit Graph

770 Commits

Author SHA1 Message Date
4d4899390c ip4: perf optimization in the ip4-input node
Change-Id: I9ddbbf8ce0d7307b9eb82ccd0c51f84e479ffd23
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-12 13:05:00 +00:00
1b6f902046 ipsec: go straight to lookup after esp encrypt
Currently, IPsec tunnel traffic goes to ip4-input/ip6-input after esp-encrypt.
It is not necessary to check that the new IP header is valid (if it is not
valid then we have otehr issues).

Instead, just send packets straight to ip4-lookup/ip6-lookup after esp-encrypt.

Change-Id: I5e35d500cb0f33f418f8554ed1f4390f02b6647d
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2016-12-12 13:03:27 +00:00
9ca18c604a MPLS Nodes Dual Loop
Change-Id: Ic54d4cb9dec8e91446b9b4d2b40ed69a14bd4355
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-11 14:14:30 +00:00
fa0fb5821a VRF imported FIB entry should inherit the flags from the export entry.
Change-Id: Ie2c3d62a468315390ef2c4314a73cff0f6d3cdaf
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-11 14:10:05 +00:00
892e076a1e ip4: perf optimization in the ip4-rewrite node
This change shows around 7% improvement in ip4 path
when ip4-output features are not used.

Change-Id: I81c1c4c38c99fff0ad8270d3c0df907acf1d8c58
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-09 21:43:23 +00:00
0ebe8d7d76 Add FIB unit test to 'make test'
Change-Id: I57126416f57649768f3601cd715c7f5f4b9b9fad
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-09 20:11:30 +00:00
637b9c4531 BFD: handle timing wheel prematurely firing events
Improve handling of timeouts. Add a workaround for when timing wheel
fires an event a tiny amount of time before it should actually be
fired.  Don't delete unneeded events at all from timing wheel, instead
ignoring unexpected events. Enable the skipped BFD test, which passes
now.

Change-Id: I6ffd4fc0ba7a049ffe63bb0e5290641a7300dd6f
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-09 20:10:02 +00:00
d7cb1b5f22 Coding standards cleanup for vnet/vnet/ip, VPP-255
Change-Id: I12892fa571cc50e0541d6463a8b68e1b618edd9f
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-09 11:47:00 -05:00
b78292efdf VPP-547: Fix for co-existence of HbH and RH header in Segment routing:
1. sr-rewrite - SR insertion in v6 : SR RH is inserted immediately after v6 header
but if hbh header is present as per RFC2460 it should immediately follow
v6 header. This is fixed.
2. sr-local : v6 packet destined to a sr segment is received if hbh is present
it is not handed over to sr-local for processing. fixed ip6-local handling to
skip hbh as there is no register handler for hbh for now.
3. sr-replicate - update in dual of sr_rewrite to handle replicate, fixes in
sr-replicate to handle presence of hbh header

Change-Id: I034523a42d2fedf97134761f956ab534babb8b36
Signed-off-by: Shwetha <shwethab@cisco.com>
2016-12-09 14:57:21 +00:00
199ca9c449 DPDK HQoS: enable vpp control plane thread connection to hqos thread
The vpp control plane thread generates different types of packets such as ARP,
DHCP client, IPv6 RA, etc. which need to go through HQoS thread associated
with the output interfaces. Therefore, this patch enables vpp main thread
connection with the HQoS thread through dedicated SWQ.

Change-Id: Idcb759546d4bcd9b40beedaec4f12b29baae3e40
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
2016-12-09 09:00:56 +00:00
e4504c6320 BFD: fix timing in the main loop
Properly wakeup the main process loop only when necessary to avoid
missed events. Improve BFD unit test reliability and speed. Add
timestamps to logs and replace Queue with more efficient deque.

Change-Id: I01255a02057d3146917b43b669ccdc74f31ef0c8
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-09 09:00:26 +00:00
56912c896a Add extra validation for VXLAN packets and tunnels
- On VXLAN packet decap, validate its DIP against VXLAN tunnel.
- Add extra logic to validate and handle creation of multicast
  VXLAN tunnels.

Change-Id: I6abdddd7be4cd9f1bcfc88d9970ba681fdd72f7c
Signed-off-by: John Lo <loj@cisco.com>
2016-12-09 09:00:11 +00:00
6d403a0132 VPP-470: Introduce VxLAN-GPE as transport for iOAM.
See Jira ticket for more details
- New plugins created to (a) Add VxLAN-GPE as transport (b) Provide export infra for
  VxLAN-GPE.

Change-Id: Ife50c7434f53d17a4783062310f73d063d53494c
Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-12-09 06:15:02 +00:00
0c1519b5e7 BFD: improve ip header handling, fix assert
Instead of storing a pointer, store an offset within vlib_buffer marking
the start of the ip header (similar to storing start of ethernet
header). Handle negative timeout in the bfd process main loop.

Change-Id: I05a1ff3ac41da5bdc3b2ac6f9e03b3241994688b
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-08 12:16:42 +00:00
b1135432d7 Fix bug in code for setting dpdk interface descriptors (VPP-552)
Change-Id: I6401b745eeb402ec980e86dc179b774d341c4764
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-12-08 11:56:09 +01:00
2c4dbff25b dpdk: don't drop packets if l4 checksum is flagged as bad
Sometimes NICs are flagging checksum 0 as bad, which is not
always true.

Change-Id: Ibb0147c94f436966e6afa472025bdf92c41f201e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-08 10:04:28 +00:00
14ac8010ef vhost: fix coverity warning
Change-Id: Ifb9f8d2528142ad9f11a2b6d5ac10ff9639dd5d6
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-12-08 07:58:47 +00:00
0e3c0de1ed BFD: basic asynchronous session up/down
This is a work-in-progress basic BFD session handling. Only
asynchronous mode is supported at the moment. Setting the session flags
doesn't work.

Change-Id: Idba27f721b5c35be5a66a6d202a63d23ff7ecf6f
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-07 19:54:12 +00:00
d171d48edc l2fib: add mac aging support
Change-Id: Ib617ae0f76320d596cc6c4b384da76c91d701a24
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-07 17:42:07 +00:00
19c68d2a02 Prevent re-entrant walks on an adjacency.
The re-entrant walks were caused when the walk from an IP adj updated a fib_netry with an MPLS adj which in turn triggers a walk of the IP adj. Re-entrant walks do unnecessary work.
also fixed a walk merge issue where the encountered walk should only be checked for equivalence woth the most recent alk, not any in the list. Otherwise an UO,DOWN,UP beceoms (2*)UP,DOWN

Change-Id: Ib8b27f055dc6c1366d33740276d1c26cd314220a
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-07 17:17:30 +00:00
9677a944d5 LISP mapping timers
Change-Id: I4cd600189e936b07b628371df2f7fe2e2dc3e63d
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-12-07 16:31:13 +00:00
496e127c58 Refactor tap binary APIs, VPP-550
Change-Id: I1599b3659411b5f4451c364cc5ada63cfa8e0a6b
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-07 16:20:49 +00:00
288e8930ee Make table chain deletion optional in classifier API (VPP-206)
Change-Id: If30c0f6d5de34943bc399b3412c2d10847538c3c
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-12-07 09:42:18 +00:00
399ca1ca52 SPAN API: Fix various errors making SPAN break make tests.
- s/l2/span in span_api.c in foreach macro
- Not installing .json from Makefile.am

Change-Id: I2469fe01138d62e044b8262cdb5a6e3b009bb43e
Signed-off-by: Ole Troan <ot@cisco.com>
2016-12-06 23:48:43 +01:00
b5e8a771fb Refactor binary APIs for IP, VPP-549
Change-Id: Ieff6b22e2432600a231f74e75716e000d488a78f
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-06 20:00:57 +00:00
dfc19232df Add binary API for reading interface/vrf assignment (VPP-439)
Change-Id: I9b7cb90127e464fea520bb1b0a3e93c05a0e9e8e
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-12-06 18:12:50 +00:00
3a2a1c47bc span: add tx functionality and support for multiple mirror ports
Change-Id: Ib6dd290085e6f9a434499af8d19f346220dc8428
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-12-06 17:26:48 +00:00
d3eb90ecfc vhost: Improve data path
This patch significantly improves vhost Tx and Rx
performance (20% Mpps improvement in PVP scenario).

Most significant change consists in the split of
virtio ring parsing and memory copies.
Other minor changes mostly consist in getting
rid of unnecessary variables.

Change-Id: Ia94e12ab9a6c114e3f7fef376a9343823d051209
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-12-06 16:22:16 +00:00
f3bd5716c1 Fix length in LCAF header
Change-Id: I56461c5d892ce223d1160fb57313ca1c51db9a23
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-12-06 15:54:13 +00:00
f0c90e20f7 MAP: Split MAP API out of vpe.api.
Change-Id: I91a612a00ea85a9ddd4233d9aa19a6a4332d9701
Signed-off-by: Ole Troan <ot@cisco.com>
2016-12-06 13:59:10 +00:00
dbb3c25374 vhost: Code cleaning
After a bug was found, I decided to review old vhost code.
This change cleans some of it by:
- Use unix file private data rather than hash table
- Use vnet interface lookups rather than hash table
- Keep track of unix_fd index rather than fd value
- Change some indent
- Store interfaces in a clib pool rather than hand-made pool

The overall change reduces the number of lines as well as
the amount of state kept in vhost structures.

Change-Id: I6b9b670b9c7e1fb85981bcf2099f7140b0251fe0
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-12-06 13:58:13 +00:00
3e046ea96e api: missing support for dumping of neighbours (VPP-333)
added API to dump ipv4/ipv6 neighboors (added by ip_neighbor_add_del).

Change-Id: I33209a3d06beba64d68465c0892a9f4c65657334
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-12-06 12:08:46 +00:00
397fd7d39f Implement LISP control plane messages
* Map-register
* Map-notify
* RLOC probing

Change-Id: I7f6295376b21cd67805446dfd1c1033acead2d4b
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-12-06 09:30:43 +00:00
86fb04db3e All mcast and All class E have /4 not /8 subnet masks
Change-Id: I29e54014f43f0b0ce087380b2318fe623d879204
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-05 18:43:24 +00:00
6d963c272c Move interface APIs to vnet/vnet/{interface.api,interface_api.c}
Change-Id: If3f0f73ad1c1d54ac69122052c977eb83a9e16eb
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-05 15:33:51 +00:00
d162f3dcfd api: set interface MTU API (VPP-442)
Change-Id: I67178f2703febb8ad3eb011606cb8a86fab5ee94
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-12-05 12:54:10 +00:00
ff82ed6ccf Fix crash in debug mode when call ethernet_register_l3_redirect()
Change-Id: I1c2a13663ec75460cd28ea8593aa8de3f27e47b9
Signed-off-by: jerryian <gu.jian1@zte.com.cn>
2016-12-05 10:53:49 +00:00
f06aea5c72 Locally generated packet go through lookup/load-balance - locally-generated is an attribute of the packet and checked where necessary
Add a flag to the vnet_buffer to indicate a packet is locally originated. Then in the rewrite nodes we can check this flag and not perform the TTL decrement. The switch path cost is expected to be fractions of a clock - the flags will be hot in the cache.
The cehcks are necessary to due the requirements that VPP must be able to emit an IP packet with TTL=255.

Change-Id: Ieb9cf06e34df54fd5c950293de8b665016295c51
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-05 09:20:26 +00:00
e3371afc8a Fix vpp crash when generating jumbo packets
Change-Id: Ie1832f2b5df9f9f7ba2f0f406116e11014d3ac21
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-12-05 09:18:57 +00:00
c90dfdcf4f Fix ICMP echo reply punt path
Add ICMP echo reply punt logic in ip[46]-icmp-echo-reply (ping) nodes.
ICMP echo reply packets corresponding to the locally (VPP) originated
ICMP echo requests are still dropped as before. Rest of the (unknown)
ICMP echo reply packets are pushed to the “error-punt” node.

Also added ICMP echo packet (id/seq) trace information

Change-Id: I998198430dedc9b4d771b6aff2a97f18598663f9
Signed-off-by: Alexander Popovsky <apopovsk@cisco.com>
2016-12-05 09:18:34 +00:00
9dfd3383e5 Fix crash whith bonded ethernet / DPDK 16.11
In DPDK 16.11 bonded PMD is still using old naming ‘rte_bond_pmd’.
See: dpdk-16.11/drivers/net/bonding/rte_eth_bond_api.c
Fixed crash when VPP is generating a name for ‘unknown’ non-PCI interface

Change-Id: I59e15f009e1a11949a19abf5234d09425a81c6ce
Signed-off-by: Alexander Popovsky <apopovsk@cisco.com>
2016-12-04 16:04:06 -08:00
3b222a35e2 Coverity errors in MPLS code
Change-Id: I3f98e3c30e29198cb8701bfb846ce194b7250ed7
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-02 20:52:56 +00:00
df1059f057 remove CLIB_DEBUG conditional in fib_protocol_t
Change-Id: I179941fe615935e63c6f4eacf1193c6bfab6631d
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-02 20:52:27 +00:00
f468e23da6 api: L2 XConnect API (VPP-438)
Change-Id: I0a86184391723675488a5eb517c375f67940f5b5
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-12-02 16:59:03 +00:00
8b2247d247 interfaces: make no_flatten variant of inteface_ouptut fn default
Flatten variant was used only by old native drivers.

Change-Id: If206c6c8b4f10843d60f908c3acb4e8db83ce03d
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-02 16:02:44 +00:00
4933168df3 snat: fix 1:1 NAT with multiple workers
Assign worker when static mapping is created.

Change-Id: I204e486e2ba5d1ef8e357759c35ba92a25a9a097
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-12-02 14:42:26 +00:00
beb4bf7df8 Augment Vxlan to support NSH-Proxy
PatchSet 9: add range check for decap_next_index
PatchSet 6: delete runtime range check

Change-Id: I415e156d05d09d2ff34f6578924f0b243058f464
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-12-02 14:16:02 +00:00
152e21dda6 feature: add interface-output arc
Change-Id: Ifea275a312e0f2474cdc3a336ac51ea83e403c74
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-02 14:14:50 +00:00
58290ea2f6 Fix dpdk_validate_rte-mbuf for chained buffers
Change I4ad40f398f7b5cf introduced a bug with chained buffers.
This patch should fix it.

Change-Id: Ia409d5eb90fcd6d7ff3c7da0836edfd2eb25998b
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-12-02 12:25:09 +00:00
21da6ce025 feature: introduce feature arc end nodes
This change allows us to keep feature path disabled
until 1st feature is enabled. Enabling 1st feature also means
that end feature node is enabled helping feature arc tenants
to reach the end.

Change-Id: Idbd64e681bd2b42e7c67612074649e5ae51f46e6
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-02 11:19:02 +00:00