summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-07-04LISP CP cleanup and refactoringFlorin Coras10-764/+1111
- avoid code duplication by using only one function for insertion/updating of remote mappings into map-cache. Static remote mappings are now inserted using this function as well and therefore the code does not try to build forwarding entries out of them now. - bring up lisp dp interfaces when a vni is bound to a vrf. - ensure eids are cleaned-up before parsing control plane messages - ensure map-requests are always sent to default fib - new API to insert lisp adjacencies as opposed to remote mappings which should be replaced post merged in CSIT - reorganize and group functions according to their purpose and use. No need to pre-declare internal functions now. - this does not touch locator-set logic Change-Id: Ibcfc0f2d9c1bc1c9eab6e83c1af1b4cf9302ac10 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-07-04VPP-174 IPsec API fixMatus Fabian1-7/+18
ipsec_sad_add_del_entry and ipsec_spd_add_del_entry parameters with IPv4 address are always 0.0.0.0 Change-Id: I75cb211ce9069596df4ef1d910e263d22940b9d8 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-07-02Add gtags option to use ctags. Hidden option in MakefileKeith Burns (alagalah)1-0/+3
Change-Id: I6b01c1f2beec37d7aaad1ab9dab303835a9feb49 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-07-02Finish cleanup of .../plugins/{configure.ac, Makefile.am}Dave Barach6-87/+44
To add a new plugin subdirectory, add this to Makefile.am: if ENABLE_new_PLUGIN SUBDIRS += new-plugin endif and add this to configure.ac: PLUGIN(new) Change-Id: I770a6f4f8f964fd7318a912be486accf46514b59 Signed-off-by: Dave Barach <dave@barachs.net>
2016-07-02Enable PCI extended tags in the DPDK configDamjan Marion1-1/+3
This change should improve DPDK performance on 40G+ NICs with small packets. It also removes ITR setting for i40e devices, allowing driver to set default. Change-Id: I70761b155e48fb0281f7c231516d83027bd16ca2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-07-01Simple ip4 NAT pluginDave Barach14-6/+2928
Change-Id: Iffe77bf2a05ced41474540ff54a842101aad7c41 Signed-off-by: Dave Barach <dave@barachs.net>
2016-07-01VPP-171: fix a set of hw interface recycling bugsDave Barach3-1/+27
Change-Id: I735292bb2176742acab2295f90956c57e6f7ec1c Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-30VPP-163 "show ip6 interface" ignores many addressesChris Luke2-24/+61
The output of the CLI command "show ip6 interface" shows only the first link-local address and any globally-scoped addresses. It ignores all other valid address scopes. This patch reworks that routine to cover the three main address scopes ("link-local", "global" and "local") and anything else it finds is grouped under "other"). Rationale for this final grouping is that these other addresses fall under ranges currently either "reserved" or "multicast" in scope. Whilst it's good to show if these are present, they are not normally found as link addresses. DBGvpp# sh ip6 int tap-0 tap-0 is admin down Link-local address(es): fe80::e857:7fff:fe77:c1a9/64 Local unicast address(es): fd50:7389:246b:4321::2/64 Joined group address(es): ff02::1 ff02::2 ff02::16 ff02::1:ff77:c1a9 ff02::1:ff00:2 ... Change-Id: I1d750b3b39c54aa4eb75632d53089640601bcba5 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-06-30Fix buffer leak from L2 flooding replication processPierre Pfister1-0/+1
vlib_buffer_free_inline actually checks (b->flags & VLIB_BUFFER_RECYCLE) in order to decide whether to free the packet or not. Although the flag was correctly set in replication_prep, it is not removed by replication_recycle during last iteration. This patch just removes VLIB_BUFFER_RECYCLE when is_last is set. Change-Id: I2445ebce908d94d95535e706b40407b4f15906e4 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-06-30Fix wrong interger type when unformating value in VATFilip Tehlar1-4/+4
Since format string "%d" expects a 32 bit value using u8 type in unformat() results in buffer overflow. Change-Id: Idee5b588049d7573ddbde56c28030f9db3758493 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-06-30Fix clang buildDamjan Marion3-8/+8
Change-Id: I678d7e0a7c91c7daf9feb3ec23a633b96fab56a7 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-06-29Fix the spelling of the word "suppress".Chris Luke7-24/+26
The spelling mistake where "suppress" is written as "surpress" was sufficiently common and annoyed me enough to fix it. For backwards compatibility, the CLI and API test tool both still accept the erroneous spelling. Change-Id: I82104ae9d8c2c9d6e3396ba0d72cb1dc133081d1 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-06-29Add support for ethernet address in LISP APIFilip Tehlar4-98/+183
Change-Id: I9f1522f55bdd11602784a421fd850b839a1070e6 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-06-29Don't re-write adjacency with same information.Keith Burns (alagalah)1-9/+17
This will cause FIB counters to appear to be reset. This is an implementation of a patch from Dave Barach. Change-Id: I19b9953d42dfb92ec22af6a855e2e519ae7c3bdc Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-06-29Decouple worker thread code from dpdk, enable worker threads in vpp_liteDamjan Marion12-654/+593
Change-Id: I28616f1a89f2da95484438ec1a1db64845f15ef6 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-06-29VPP-158: VPP crashes in IKEv2 code when running multithreadedMatthew Smith6-148/+222
Change tunnel interface creation to be done from the main thread instead of a worker thread by calling vl_api_rpc_call_main_thread. Make per-thread copies of volatile elements in ikev2_main. Change-Id: I4cda8aaa392a04c2aea2d50a52a07933cf40c016 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2016-06-28VPP-48 Fixes for ip4/6 ttl checks and icmp responsesChris Luke6-72/+244
This patch fixes a few minor things: - Previously ip[46]_input was rejecting packets with an input TTL (hop limit) of one; this was not correct behavior. Packets that are bound for this device can validly have a TTL of one. - ip[46]_forward was not generating an ICMP TTL expired message if the act of decrementing the TTL caused it to become zero. This was not previously an issue because ip[46]_input was filtering packets where this could happen. - udp_local was not generating ICMP Port Unreachable messages if UDP packets arrived for a port that is not listened to. This is typically the signal that "traceroute" uses to terminate its search. Together these fixes mean that traceroute probes transiting a VPP node, or are targetted toward a VPP node, now work as expected. Change-Id: I84bb940883f7a18435f29f4518fb0445b989a3e3 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-06-28Fix native build on non x86_64 systemsDamjan Marion3-0/+13
Change-Id: Iab9f6793112f19a5b54a555623d84099aa8bb03e Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-06-28Reduce ring size for dpdk NICs and overtal mem footprintDamjan Marion3-7/+7
Size of interface descriptor rings have direct impact on Last Level Cache utilization, and can significantly affect performance. So generally having smaller ring size is good idea as long as there is enough buffer in the ring to accomodate line rate. Here we are reducing rings sizes to 1024 which is still bigger than lab verified 512 buffers per ring. Indirectly, this also affects memory footprint, as we can have smaller buffer allocation, which is now 16384 (previously it was 32768) This patch also fixes issue with i40e vector PMD which was leaking buffers when previous default ring sizes were set. Change-Id: I58fb40586304b2f0cb5de9a444055da3cd3acb53 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-06-27Add support for classify table/session read to jvpp:Marek Gradzki2-26/+110
* provides length information for variable length arrays in classify table/sessione reply messages * provides jvpp example for reading classify tables/sessions Change-Id: I47f8fca5c849ec874d4e23f28177e310689db522 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-06-27Plugins: Clean up the plugin directory so that each plugin has its ownOle Troan97-151/+485
directory and GNU autotools setup. Change-Id: I6c59d1297389c9413db0c0b9bdf3b759080bf1b8 Signed-off-by: Ole Troan <ot@cisco.com>
2016-06-27More janitorial workDave Barach21-138/+98
Install vpp api header files in /usr/include/vpp-api, instead of /usr/include/api. Someone will eventually complain if we continue with the status quo. Generate /usr/bin/vpp_plugin_configure, to correctly configure standalone plugin compilation against header files installed from the dev package. If a plugin's CFLAGS don't precisely match the installed vpp engine binary, subtle misbehavior can and will occur. Example: the ip4/ip6 main_t structure size / member offsets depend on DPDK=[0|1]. Screw that one up, and your brand-new configurable ip feature will mysteriously fail to appear, even though the plugin loads perfectly. Change-Id: I20c97fe1042808a79935863209d995c31953b98c Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-27VPP-108 : API calls to read classify table and sessionsPavel Kotucek5-5/+651
Added new API calls to read - classify table ids as array - classify table ids for specified interface - classsify table info and to dump sessions of specified classify table. Change-Id: I089604fa98eea92866495089d76c2330ae7d850c Signed-off-by: Pavel Kotucek <pavel.kotucek@pantheon.tech>
2016-06-27Add MAC address support to LISP map-cacheFilip Tehlar5-17/+131
Change-Id: I80f05a222cb0f728ad2460efe33955e781b6849f Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-06-26Misc. janitorial work:Dave Barach5-25/+19
Remove private / name-colliding "give me the first ip address on an interface" routine from proxy_node.c Return a proper error from ip4_lookup_init / ip6_lookup_init. Change-Id: Idd3c574424ba2ea77c263af16b02cd4ad0cb4605 Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-25Netmap: Resolve interface state issueMohsin KAZMI1-3/+0
[VPP-155]: There is inconsistency in the netmap interface state for software interface state and hardware interface state. This patch resolves that issue. Change-Id: I92199e117f919bd985670366a6d3b7753e40659c Signed-off-by: Mohsin KAZMI <sykazmi@cisco.com>
2016-06-25Doubly-linked list element poolsDave Barach4-1/+341
Change-Id: I96e7602be48dfb5bb3867ad1e9f15c543903b3d6 Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-25vhost-dpdk: dequeue size fixZhihong Wang1-4/+12
Burst size for DPDK is 32, which is different from VLIB_FRAME_SIZE. A loop is needed to dequeue all packets. Change-Id: Ie611c58c4e3434251a47fe6ad1f38abcb85180cb Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
2016-06-25add buf_physaddr to dpdk traceGeorgii Tkachuk1-2/+2
Change-Id: Icbb6814306f51873af6ad9d1425b52d660bb99ce Signed-off-by: Georgii Tkachuk <georgii.tkachuk@intel.com>
2016-06-25Vagrantfile RAM default is too small.Keith Burns (alagalah)2-2/+2
- Will raise JIRA for someone to convert this to use binaries by default - This means we should be able to get away with smaller VM for non-dev users Change-Id: If3d9283ba2c169792a1ab71ff692c25de82d41f4 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-06-24netmap: multithreading supportMohsin KAZMI4-16/+70
This patch adds multithreading support for netmap interfaces. Change-Id: Iba94386fe309a4aac71646fe567f8dabbebd0459 Signed-off-by: Mohsin KAZMI <sykazmi@cisco.com>
2016-06-24Move vcgn as pluginShesha Sreenivasamurthy70-55/+102
Use appropriate libnames to copy Change-Id: Iaa1e7e3ceed52f328e26e75ee7309fc6464d5c66 Signed-off-by: Shesha Sreenivasamurthy <shesha@cisco.com>
2016-06-24Reformat output of lisp eid-table show command.Filip Tehlar3-11/+66
Example output: DBGvpp# sh lisp eid EID type locators [100] 6.0.2.0/24 local(ls1) host-intervpp1 [200] 6.0.2.0/24 local(ls2) host-intervpp1 [100] 6.0.4.0/24 remote 6.0.3.2 [200] 6.0.99.0/24 local(ls3) local0 host-intervpp1 [0] 6.0.0.0/16 remote Change-Id: I69200bf7636167bce931def88828503a75496f4b Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-06-24VPP-118: add support for variable length arrays to jvppMarek Gradzki7-9/+54
* extends VPP's message definition language with the following syntax: u32 count: u8 array[count]; which is traslated to: u32 count; u8 array[0]; but now, python API representation generated by vppapigen contains information about where the array length is stored. * modifies existing response messages to use the new syntax Change-Id: I68210bc7a3a755d03d067e9b79a567f40e2d31f3 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-06-24Add admin-up flag to L2TP tunnels and start tunnels set to downPierre Pfister4-6/+42
L2TP tunnels use virtual interfaces but directly send packets to l2-input node (not ethernet-input). This node requires a bridge-domain to be associated with the interface. Past code was immediatly turning the interface up, but some packets could be sent to l2-input without bridge domain between interface creation and association with a bridge domain. The tunnel is now created as down and has to be set up later (typically after being associated with a bridge-domain). Another option would have been to change the api and enforce a bridge-domain to be specified before the tunnel, but this is less flexible for the user. Change-Id: I26d1f36bb4f327d9fa1c8044023f2210c4117904 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-06-23Show command support for ip feature pathsDave Barach5-3/+147
"show ip features" displays all available features, in execution order. "show ip interface features <intfc>" displays all features currently configures on an interface, in execution order. Change-Id: I489bbdb85799a01721ba60b12ffaffcab1e0d1df Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-23Use lisp_gpeX iface counters to store decap statsFlorin Coras4-36/+71
The patch switches to using LISP interface counters for storing the number of decapsulated packets instead of using per decap node stats. It also removes the encap node (iface tx node) stats since the iface output node already keeps track of the number of encapsulated packets. Change-Id: I636702a824264c173792f2f0c7fec0b0f4c6a9f7 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-06-23VPP-72 Added api call aquivalents to:marek zavodsky6-15/+874
"show mpls fib" -> "mpls_fib_encap_dump" and "mpls_fib_decap_dump" "show mpls tunnel" -> "mpls_eth_tunnel_dump [tunnel-index <tunnel-id>]" and "mpls_gre_tunnel_dump [tunnel-index <tunnel-id>]" Change-Id: I59699039392f06dc61f62a015d07186a91cfaf45 Signed-off-by: marek zavodsky <mazavods@gmail.com>
2016-06-23LISP EID virtualization supportFilip Tehlar11-182/+443
Change-Id: I892c001cfdff9d8d93e646641d96520beb3c6265 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-06-23More LISP SD FIB and forwarding fixesFlorin Coras3-62/+56
o) Avoid using explicit_fib_index in the dst (main) FIBs. It's used in the IP6 lookup o) use if_address_index instead of rewrite_header.node_index to store tunnel indexes. This ensures the tunnel index is used in the signature computation and thus avoids all complications/hacks needed to make src adjacencies unique. o) Fixed negative fwd entry route insertion Change-Id: Ie56356f165b96dfa929da5672a3a429996366460 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-06-22ARP/NDP does not send solicitation when no source address is availablePierre Pfister6-7/+28
Currently, when the interface has no address assigned to it, VPP crashes as ip_interface_address_for_packet assumes there always is at least one address. This patch checks if an address is available at all. The only part of VPP using it is ARP or NDP. When a neighbor discovery message has to be sent while there is no address assigned on the interace, no solicitation is sent and an error counter is incremented. Change-Id: Ia9fdaf8e84050a1ceeb47f5370819d3df95714f0 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-06-22Add MAC address support for LISPFilip Tehlar3-18/+166
Change-Id: I79e3915fa61b497e6b586babcdf093937af07b2b Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-06-22CLI to update locator-setAndrej Kozemcak1-6/+83
Change-Id: I60ea36362a2c4b7c936dde501a3d737b68a8c9ff Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-06-22Fix for build failure due to iOAM plugin header file pathShwetha9-17/+23
Change-Id: Ie5d270a01e3ca0687a407aeebc42aacc53a01ddc Signed-off-by: Shwetha <shwethab@cisco.com>
2016-06-21Vagrantfile syntax error correction - requires string input instead of integer.Srivatsa Sangli1-1/+1
Change-Id: Ib291662c4ea2f5bef0f2c417b16d256f5c480d5c Signed-off-by: Srivatsa Sangli<srivrama@cisco.com>
2016-06-21Check if LISP is enableAndrej Kozemcak6-14/+105
Lisp enable flag is enforced. DP API should not be call if the dp is disable. Change-Id: I265cf3ea0460987f3fd5fd84b43127dd3b1c43c3 Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-06-20Fix problem with DPDK vector PMDs not working in VPPDamjan Marion1-2/+4
Linker was picking wrong, weakly linked function from dpdk drivers, so detection of vector mode was always failing. Change-Id: I11725c8ddbc4604dd04ecb89ebb7f02ee05e52c7 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-06-20VPP-143: Correctly drop local l2tp packets when no session is foundPierre Pfister3-14/+48
When receiving a local ipv6 packet containing an l2tp packet not associated with any session, l2tp node was handling the packet as if provided by an ipv6 feature, hence crashing. This patch fixes the issue by correctly dropping the packet instead. This patch also fixes a typo from commit d65346098daf896. Change-Id: I1b377fc5685568c16831920227671feffac64287 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-06-20Using env.sh file for Vagrantfile inputs, but assume some defaultsKeith Burns (alagalah)4-63/+98
Change-Id: Ia4b45d88be5943d413d61435ff38796d1b6a32a2 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-06-19VPP-152: mheap_alloc returns 0 when the requested heap size is too smallPierre Pfister2-1/+14
mheap_alloc allocates memory_size bytes of memory and returns a page-aligned memory space prefixed with a word-aligned header of type mheap_t. This header includes the actual usable space size, but when the requested size is too small, the computed size was incorrect (infinite). mheap_alloc now returns 0 in such cases. With help from Yoann Desmouceaux. Change-Id: I00af63d573d6939aca53dbe7ff612b726bd8f0df Signed-off-by: Pierre Pfister <ppfister@cisco.com>