Commit Graph

138 Commits

Author SHA1 Message Date
69a9b76d64 VPP-362 Implement dumping of LISP adjacencies
Change-Id: Ieea56f3bf9e749878d9f2b35d39d9f7a9cdabde4
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-10-12 13:24:03 +00:00
51ffa817d9 ipfix: add l4 unformat support for mask and match (VPP-204)
Change-Id: Iff32c488af9b71acbc4e572c6741afae0a67333c
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-10-10 20:51:28 +00:00
506b24564d ipfix: add classification nodes for flow statistics (VPP-204)
In order to have meaningfull IPFIX implementation we should be able
to classify all packets flowing through vpp. But existing IPv4 and IPv6
classifier nodes are called only if destination IP address is local
to vpp. This commit adds new IPv4 and IPv6 classifier nodes that should
be used for collecting flow statistics.

Change-Id: I60e60105663ba15b5200862a23bb817047fe4d1a
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-10-10 20:51:28 +00:00
477570e587 Add signal handling
Please send SIGTERM to stop vpp_api_test, especially during
long-running operations such as a high-count asynchronous set of
ip_add_del_routes.

Otherwise, there's every chance that the data plane to vpp_api_test
message queue will fill and cause an easily-avoided deadlock.

Change-Id: I09309b445c354e1a692fed708dd5ea44d1ea9882
Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-10 20:49:29 +00:00
b21b6768ff platform: rewrote vppctl script to include history
Added more ability to search history to vppctl shell
*Up and down keys give history
*Script now written in Python 2.7.6
*Contains all original functionality
*Added Python dependency for deb/rpms

Change-Id: I5088f7b018fce92b9b5411df0bffc34709810dec
Signed-off-by: Padraig Connolly <padraig.connolly@intel.com>
2016-10-10 19:48:38 +00:00
33a7dd5ad9 FIB2.0: memory leaks during load-balance update (VPP-475)
some other fixes and enhancemets to address failures in the IPv6 Scale testing:
 - The rate at which VPP sends ARP/ND requests, 1 per-millisecond, is too high. This is reduced to 1 every 10 ms. probably still too high.
 - If an ARP/ND response is received that does not contain a change to the known MAC address, no further processing is done.
 - Added stats to get info about the async FIB walks.
 - When walking FIB entries and performing a load-balance update, it is not necessary to re-insert the LB in the forwarding table.

Change-Id: Ifd47e4bdbce94495f44aaf1b78e7d1395ed870d1
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-10 18:58:22 +00:00
4a7e58bf48 VPP-395 Add udp-punt node(s) and API
Uses existing UDP local API in order to register
requested UDP port punt to the host.

CLI: set punt udp [del] <port>
API: punt protocol <l4-protocol> [ip <ver>] [port <l4-port>] [del]
* Only UDP (l4-protocol = 17) is supported at this time

Change-Id: I9232af1c891d1ed174d77f3e0dfe60c4b9d85e40
Signed-off-by: Alex Popovsky <apopovsk@cisco.com>
2016-10-07 15:31:50 +00:00
95300d1915 VPP-355: add PBB (802.1ah) tag rewrite
- new API/CLI to define pbb tag rewrite on interface
- encapsulation/decapsulation of PBB tags
- tracing of PBB header
- PBB tag rewrite operations

Change-Id: I538b3025a8b2e41cdeed9f10fea94bbcd28b5f5f
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-10-04 17:15:16 +00:00
f2c6ed1925 vat: add pg interfaces to sw_interface_dump (VPP-451)
Change-Id: I976a44dcfb32b1132c14363174239333315b2c6f
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-09-30 12:09:33 +00:00
2fdaece087 VPP-450 Fix adding LISP adjacencies via CLI
Change-Id: If90c9c630629e727fffc5d450516045a04433661
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-30 08:42:28 +00:00
85ecc810ca DPDK HQoS: Enable Hierarchical Scheduler in VPP
This commit extends the vpp framework with new thread type "hqos-threads" that
runs the Hierarchical Quality of Service (HQoS) scheduler associted with output
interface.  HQoS Scheduler prioritize the packets from different users and
ensures sufficient bandwidth to pass the more important traffic.

At high level, HQoS scheduler is a buffer that can temporarily store a
large number of packets. In otherwords, it is a collection of large number
of queues organized into hierarchy of 5 levels; the port (i.e. the physical
interface) is at the root of the hierarchy followed by the subport (a set
of users), the pipes (individual users), the traffic classes (each with a
strict priority) and at the leaves, the queues.

In each HQoS scheduler, three operations are performed; classification
(setting HQoS port, subport, pipe, traffic class and queue within traffic
class from packet fields), enqueue (selecting HQoS queue for the packet,
and to drop the packet if the queue is full) and dequeue (schedule the
packet based on its length and available credits, and handover the scheduled
packet to the output interface).

In vpp, the number of hqos threads will be equal to cpu cores specified in
corelist-hqos-threads parameter cpu section of the vpp configuration file.
One hqos thread can run HQoS for multiple output interfaces. A particular HQoS
instance is initialised with default parameters required to configure hqos port,
subport, pipe and queues. Some of them can be re-configured in run-time
through CLI commands as well binary APIs.

Following illustrates the sample startup configuration file with 4x worker
threads feeding 2x hqos threads that handle each HQoS for 1x output interface.
For more details on HQoS configuration please refer to DPDK Programmer's Guide.

dpdk {
	socket-mem 16384,16384

	dev 0000:02:00.0 {
		num-rx-queues 2
		hqos
	}
	dev 0000:06:00.0 {
		num-rx-queues 2
		hqos
	}

	num-mbufs 1000000
}

cpu {
  main-core 0
  corelist-workers  1, 2, 3, 4
  corelist-hqos-threads  5, 6
}

Change-Id: I635c3395a7c4ddf0a239ef77b0b0a31a6dfc4767
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
2016-09-28 16:37:28 +00:00
3fa0af5960 VPP-448 Fix LISP APIs using binary data
* use zero length array in LISP API to avoid confusion
* add missing LISP data structure definitions in API documentation
* fix wrong memory allocation in VAT

Change-Id: I9b5e656a071fc24cb698c164db953c09b66deeeb
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-27 17:28:13 +00:00
dca880446e LISP Source/Dest control plane support, VPP-197
Change-Id: If88e4161e0944b657e6183b7b44348f7f46ba0a8
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-27 08:11:19 +00:00
042d212cd8 VPP-189: fix coverity issue in api_format.c
Change-Id: I8cf3bb27bc699be3b8de781ea84db4c7fb3c7553
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-09-22 22:38:43 +00:00
c9e0843d5e VPP-426: Rename parameter in LISP remote mapping VAT command
Change-Id: Ie52243bd1654e3d0663b09bd1f21e8c15e93f07d
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-22 20:38:53 +00:00
0bfe5d8c79 A Protocol Independent Hierarchical FIB (VPP-352)
Main Enhancements:
 - Protocol Independent FIB API
 - Hierarchical FIB entries. Dynamic recursive route resolution.
 - Extranet Support.
 - Integration of IP and MPLS forwarding.
 - Separation of FIB and Adjacency databases.
 - Data-Plane Object forwarding model.

Change-Id: I52dc815c0d0aa8b493e3cf6b978568f3cc82296c
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-09-21 17:37:39 +00:00
f07fb71b62 VPP-189: fix coverity issue in api_format.c
Change-Id: Ib16fd69abe93c1afb2ee1d38144763f57888585c
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-20 14:34:20 +00:00
a8cd30937e Add support for transparent ethernet bridging to GRE
Change-Id: Iaa3cefe223eb48b128893029a17e092b72a5157c
Signed-off-by: David Hotham <david.hotham@metaswitch.com>
2016-09-19 19:01:59 +00:00
c5bb0d6667 VPP-376: Refactor LISP dump API + VAT
- refactor VAT so it won't cache data
- remove unused filter flag from locator dump API call
- json structure changed for locator and EID table dump calls
- remote mapping VAT cli now accepts string for negative mapping action

Change-Id: I776fb50659aaa7e98ad93715d282a83f78287344
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-13 07:26:17 +00:00
24648ad088 Fix bugs in IPFIX code discovered by coverity
Change-Id: Ibe6ccb99c3c29c14efb34191f209a2f6a14293f7
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-09-07 00:06:01 -07:00
8fce3e3c51 VPP-382: Add ipsec tunnel interface to sw_interface_dump
Change-Id: I9e49c9b6deedb750269da04e3332a3b0742d382c
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-09-07 17:21:01 +00:00
ffa652afd8 VPP-204 Rework and finish IPFIX implementation
Rework flow report registration system - add streams
Add support for IPv6 and src and dst ports for TCP and UDP protocols
Implement binary API for IPFIX classifier module

Change-Id: Id05cc0127a7b95ceaeebf9c79a32c6936449bd63
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-09-07 07:35:50 +00:00
07d2f84907 Move iOAM Trace as a plugin
Change-Id: I78322e91485e5429871bd356f668b8ed90f4265a
Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-09-06 18:53:51 +00:00
ce98275ac3 VPP-381 Add LISP interfaces to sw_interface_dump
Change-Id: I62b65472e77a33b1fc94f7c4975b5e9cbf358f41
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-09-06 18:47:44 +00:00
e016b5e3fb VPP-358: Add IPv6 ND Event Notification and Termination
Additional fix to vpp_api_test to show which kind of arp/ip6-nd
event is received, whether it is address resolution or mac/ip binding.

Change-Id: Ic65b895cd1bfbe2f34d1b68891a1a580852fbcdb
Signed-off-by: John Lo <loj@cisco.com>
2016-09-03 20:35:10 +00:00
c27213a30f Add in-message cli_request/cli_reply API
This new CLI API is meant to replace the
cli_request/cli_reply that uses shared memory.

PS: checkstyle -- *hate*

Change-Id: I6318f8f6b9be2c2398b49dac9e2193c1998ea724
Signed-off-by: Ole Troan <ot@cisco.com>
2016-09-02 12:36:48 +00:00
b84a3e56e1 VPP-369 Add an L2 output classification feature
Change-Id: If03162d328c1ea179249e734537ebb01bade3331
Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-31 21:53:01 +00:00
1edfba9a63 VPP-358: Add IPv6 ND Event Notification and Termination
Add IPv6 equivalent of IPv4 ARP event notification which covers address
resolution for L3 and MAC/IP binding in L2 BD and ARP termination in BD.
For IPv6, ICMP6 neighbor solicitation and advertisement packets are
utilized instead of ARP request and response packets for IPv4.

Change-Id: I0088fa173e4480de297c8053ea2fcd0821322815
Signed-off-by: John Lo <loj@cisco.com>
2016-08-31 21:05:06 +00:00
d85590a004 VPP-240: delete subinterface
Added new CLI and API command to delete subinterface.

Change-Id: Ia92a8facc6ad84634bdec430093e6add02ee674e
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-08-31 10:02:15 +00:00
f53db2a6c2 Fix for vppctl to suppress "load_one_plugin:63: Loaded plugin:" msgs
Change-Id: I06fcb024036b48a6401d2865a2181b122cb32108
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-08-30 18:09:24 -07:00
5a4e2dde94 VPP-365: Fix sending of bd_index in lisp_eid_table_add_del_map
Change-Id: I1f8fd65fa33b0bc7ee07aa0eeb5f794a7ede9537
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-30 19:28:37 +00:00
c00617b13c VPP-353: Fully support LISP negative mappings in API
Change-Id: I71943fb4ae2a2f71bcf1ad73512812edf96c06da
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-30 10:30:59 +00:00
e3552c45f3 VPP-356: Fix wrong byte order in LISP API
Change-Id: Ib2284025b8394a87f1d5765713adb7070b450cba
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-26 12:40:16 +00:00
c068179a6c VPP-329: Add L2 support to lisp_eid_table_map_dump
Change-Id: Idfb115cd1f95394f4a4a569dc34c0488a1d58558
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-26 11:19:00 +00:00
07e7eab371 VPP-228 VPP-326: MAP: Adding additional API/CLI input parameter checks.
Added checks for EA bits length + PSID length > 64.
Removed incorrect check in VAT that required all arguments as mandatory.

Change-Id: I33a138612d199d7c5ce59abe1a7d7ecede3522bc
Signed-off-by: Ole Troan <ot@cisco.com>
2016-08-25 12:58:57 +00:00
50a4e14294 VPP-328: Add dump call for listing LISP VNIs
Change-Id: I45c054ad638a0e918dddefa4468ff65452949970
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-25 12:49:37 +00:00
d847d1c682 VPP-340: MAP-T wrong destination address
The bug was in VAT MAP code parsing a 32 bit integer into a 8 bit
type.  Perhaps we should try to build some defences in
unformat_chech_input() to avoid these errors.

Rebuild.

Change-Id: Iae4959f7e04d889da2e9650a4201c4db15d74201
Signed-off-by: Ole Troan <ot@cisco.com>
2016-08-24 16:48:11 +02:00
3a83460868 VPP-323: Add LISP locator set index to reply API message
Change-Id: Id798f63f4cf1a8aa7a75931bc23d3c7f5d738938
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-23 13:23:13 +00:00
694265d4f1 VPP-202: L2-GRE over IPSec
GRE encapsulate layer 2 traffic and IPSec encrypt what is encapsulated by GRE.
The whole point of L2-GRE over IPSec is to tunnel layer 2 over GRE and IPSec by
bridging the physical interface with IPSec-GRE tunnel interface.

Change-Id: Ia4cf9ed407bf663770e0d8905c0ad44ce73bd23b
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-08-17 23:21:46 +00:00
042ffb4f81 VPP-189 fix more coverity warnings
Change-Id: If464a5f06ab15eead9eaf12e89792d3761796956
Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-12 09:27:05 -04:00
839fe3e6d6 VPP-189 Fix coverity warnings
in api_format.c.

Change-Id: Iedc510fe962b6e8fb8614be4038e695b13e12ef9
Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-10 11:36:07 -04:00
e2c987e21f VPP-235: fixed vat help message for sw_interface_set_l2_bridge
Change-Id: Ie2a771abbd579c4ffd9679c157dcf435d91ebf7b
Signed-off-by: Calvin <calvin.ference@gmail.com>
2016-08-09 13:06:38 +00:00
7fbfad3ee3 VPP-189 Fix new Coverity warnings
Change-Id: I2a580320118d9ab638d9ac0986544ebad8d50e67
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-08-08 19:06:19 +00:00
72d7223163 VPP-237 vpp-api-test coding style cleanup
Change-Id: I50a5412463e9346149a7504344a68c8b5762dc97
Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-04 10:15:21 -04:00
bb5c22f1b6 LISP multihoming API changes and cleanup
Change-Id: I106352a6da0fad2b91dc8593f8d6d664af3113a8
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-08-04 11:58:07 +00:00
9d3a879d9d VPP-226 - adding UDP TCP to port-range
Change-Id: I5f4261279dcdbb03e182b18d05602407c0e55f89
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-08-03 22:02:27 +00:00
429e795197 LISP API/VAT cleanup
- cleaned up some of the LISP APIs
- added support for mac in dp APIs

Change-Id: I11d419a30d73ddbf6554768d6dc2a09cc5a6e072
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-08-03 11:48:32 +00:00
6f9bca2194 VPP-226 IPv4 src-address + port range checker
Change-Id: Ia251e9d7d53e894a5666109f69e9626d27ea74cb
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-08-01 18:16:24 -07:00
1a1adc7121 Initial L2 LISP support
This introduces support for layer 2 overlays with LISP. Similarly to L3,
all tenant packets to be encapsulated are captured by an interface, but
the mapping (layer binding) instead of being between an L3 VRF and a
LISP VNI, it is between and an L2 bridge domain and a VNI. At a high
level, this results in two important properties:
1) the source and destinations of all packets flooded in the
   bridge-domain are mapped via the LISP control plane and the replies are
   converted into data-plane tunnels tracked via a LISP specific
   source/dest L2 FIB
2) All packets reaching the interface and matching a source/dest L2 LISP
   FIB entry are L3 (IP4/6) encapsulated.

This is solely a unicast feature, therefore at this time ARPs are not
handled in any special way.

Change-Id: I0b7badcd7c6d5166db07d4acd2cc4ae7fba3e18e
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-07-31 15:52:42 +02:00
6cc6f9175c Edit eid table dump
- change output from eid table
- add eid filter:
	all - dump all eid
	local - dump local eid
	remote - dump remote eid

Change-Id: Ifaaad8abf44cf70c4c22d05252e501456f1f1083
Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-07-28 11:55:27 +00:00