summaryrefslogtreecommitdiffstats
path: root/test
AgeCommit message (Collapse)AuthorFilesLines
2017-11-07SNAT: IP fragmentation (VPP-890)Matus Fabian2-2/+449
Translation of fragmented packets. Change-Id: I9b1f2e9433ce273638080f32c2d3bff39c49899d Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-11-07UDP Encapsulation.Neale Ranns4-0/+355
A UDP-encap object that particiapates in the FIB graph and contributes DPO to teh output chain. It thereofre resembles a tunnel but without the interface. FIB paths (and henace routes) can then be created to egress through the UDP-encap. Said routes can have MPLS labels, hence this also allows MPLSoUPD. Encap is uni-directional. For decap, one still registers with the UDP port dispatcher. Change-Id: I23bd345523b20789a1de1b02022ea1148ca50797 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-11-07NAT: DS-Lite (VPP-1040)Matus Fabian2-0/+176
Dual-Stack Lite enables a broadband service provider to share IPv4 addresses among customers by combining two well-known technologies: IPv4-in-IPv6 and NAT. Change-Id: I039740f8548c623cd1ac89b8ecda1a6cc4aafb9c Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-11-07VCL-LDPRELOAD: enable accept4() wrapperDave Wallace1-1/+1
Change-Id: I56567953fb8329315393047913e30fc7f2242bdb Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-11-06make test: add CACHE_OUTPUT optionKlement Sekera2-0/+13
This option allows one to toggle whether captured VPP stdout/stderr output is printed inline (each line logged immediately after being collected). Default setting is 0/no (behaviour same as before). This allows one to see the output in case of vpp crashing during test run even if test framework gets stuck waiting for shared memory mutex (which crashed vpp can no longer unlock). Complete stdout/stderr output is always printed as a block to the logger after test finishes. Change-Id: If3645a9b85562dba26ed9c87daa27ea5ef34f2e5 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-11-06make test: fix DEBUG=core errorKlement Sekera2-1/+3
Change-Id: I703b2866a1607d6a2fad215e90b5cf2d7afdfd0d Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-11-06VOM reshuffleNeale Ranns2-283/+310
split the VOM into two halves; a top/front-end and a bottom/backend. Only the backend includes the auto-generated VAPI. This serves two purposes: 1 - improves ompile times for VOM, since the VAPI is included only in the backend. 2 - does not expose VAPI to users of VOM Change-Id: I17b93aeaef10c0eba8612016d9034aca5628d9f7 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-06VCL_LDPRELOAD: mixed libc/vcl epoll fd'sDave Wallace1-8/+2
Change-Id: Ibc82781ddef5ea0517220b9054db3d53ec348c6c Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-11-02VCL: application proxy configurationDave Wallace1-7/+11
- Add support to configure VCL to set application proxy transport types and app_is_proxy flag via vcl config file or env vars. - Clean up debug output. - Rename session_scope -> app_scope. Change-Id: I6e35f3cdd84daf0112133af8f33acd0152f87ca3 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-11-01VPP Object Model (VOM)Neale Ranns5-52/+1565
The VOM is a C++ library for use by clients/agents of VPP for programming state. It uses the binary APIs to do so. Various other common client side functions are also provided. Please see om.hpp for a more detailed description. Change-Id: Ib756bfe99817093815a9e26ccf464aa5583fc523 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Co-authored-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-10-31VPP PAPI: Error in unserializer for non-array compound types.Ole Troan1-0/+438
A bug in the decoder of messages when there was a non-array compound type. The typical result was an error message from the struct library: "error:unpack_from requires a buffer of at least 4 bytes" Change-Id: Ie30fec6fc39b9f4177b54fa4adc4fc69674f0e12 Signed-off-by: Ole Troan <ot@cisco.com>
2017-10-31l2fib: MAC: Fix uint64 to u8 byte arrayMohsin Kazmi1-1/+1
As per proposal on the mailing list, this patch fixes the represntation of MAC address in VPP API calls for · L2fib_add_del · L2_fib_table_details Change-Id: I31e17efd1a6314cded69666e693cb8fc33158d02 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-10-31Refactor IP input checks for re-use at MPLS dispositionNeale Ranns3-3/+233
Change-Id: I7aafdecd6f370411138e6ab67b2ff72cda6e0666 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-10-31lb plugin tests - wipe flowtable after each unit testGabriel Ganne1-0/+4
Add new cli api: "test lb flowtable flush" which flushes everything. Call this new cli function after the end of each lb unit test. Change-Id: I71d04a7bfba398f7d4dd9cc3ed24bba786943663 Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
2017-10-26NAT: delete session API/CLI (VPP-1041)Matus Fabian2-0/+50
Administratively delete NAT44 session for specific inside/outside addresses and port pair. Change-Id: If5ab500ac3592c7153d6d8f2cc0297df7309fbc3 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-10-26VCL: add session namespace support.Dave Wallace1-24/+56
Change-Id: I04f1b63e66260d99c0dd180b0295a55a9b750df7 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-10-25VCL: Fix vcl test scripts to check vcl.am instead of uri.amDave Wallace1-1/+1
Change-Id: I34ab79ddf0a612be1f2a4223e46811516e5b317e Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-10-25VPP-1033: Python API support arbitrary sized input parameters.Ole Troan5-12/+47
Dynamically calculate the required buffer size to pack into based on message definition. Also add input parameter length checking. Change-Id: I7633bec596e4833bb328fbf63a65b866c7985de5 Signed-off-by: Ole Troan <ot@cisco.com>
2017-10-25L3 proxy FIB source for container networkingAndrew Yourtchenko1-0/+131
Change-Id: I4164c4c19c8dbfd73e6ddf94a12056325cc093b9 Signed-off-by: Neale Ranns <nranns@cisco.com> Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2017-10-25One armed NAT (VPP-1035)Matus Fabian1-2/+140
Use a single physical interface in order to accomplish NAT44/NAT64. Change-Id: I0c8138953a7a4075df306172e125abad771315e4 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-10-24VCL-LDPRELOAD: statically link vppcom into libvcl-ldpreload.soDave Wallace1-7/+8
- Move VCL & VCL-LDPRELOAD source into src/vcl - Statically link vppcom into libvcl-ldpreload.so Change-Id: I778300b37e8b06640d9dbc01caf297edf7a6edb7 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-10-24fix test_lb_ip4_gre6() cleanupGabriel Ganne1-1/+1
missing "del" keyword, and as a result, we were trying to add the as twice. Change-Id: If78ce03f0c71591c05ff6f4748fd9c929d0f861f Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
2017-10-21test bfd - DPO_PROTO_IP6 is part of DpoProtoGabriel Ganne1-2/+2
Change-Id: I63d336a1ba366a60a2a8f1124e3f37f742cccb65 Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
2017-10-19make test: control sanity via SANITY=yes|no optionKlement Sekera1-2/+11
Allow skipping sanity when using DEBUG=gdb/gdbserver options to speed up development process by supplying SANITY=no option to make test. Change-Id: I6e619229f6866b22bdeb75654b4e750232ae22bd Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-10-19Remove unused 'not_last' parameter from ip_add_del_routeMarek Gradzki1-7/+2
Vat supports setting value for the parameter, but 'not_last' is ignored by ip_add_del_route handler, so can be removed. This patch - updates ip.api, - removes vat handlers - updates vpp_papi_provider.py (also mpls_route_add_del with unused not_last) Change-Id: Ife15de123db4bc8247103a29b90bce1988e46534 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-10-18TEST,SPAN:add broadcast+QiniQ testsEyal Bari1-67/+137
Change-Id: I89c6923370af97bbd09db81a33b6d17f9424a049 Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-10-17TEST,SPAN: add rx+tx span testEyal Bari1-127/+78
also refactored verify function Change-Id: Ib93c99c833dd7c75e416374530c631f954957d98 Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-10-17VCL: refactor VCL_LDPRELOAD env vars.Dave Wallace1-1/+1
- Update vcl-ldpreload references to use $WS_ROOT. Change-Id: I8e79f7c5e330eda6548a2baf84613b0a4d360811 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-10-15Revert "Enforce FIB table creation before use"Florin Coras2-17/+4
This reverts commit f9342023c19887da656133e2688a90d70383b0c5. Reverting to unblock master. No idea why jjb +1ed this patch! On closer inspection it looks like it -1ed it and subsequently changed opinion. CSIT tests should be fixed before re-merging. Change-Id: I26608912a962c52083073e16c7c9d2cc44a3cc8d Signed-off-by: Florin Coras <fcoras@cisco.com>
2017-10-14Source Lookup progammable via APINeale Ranns3-1/+116
Change-Id: I5d5d4f22b6369d504455a644f73076d772fbcfb4 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-10-13Enforce FIB table creation before useNeale Ranns2-4/+17
last i the serise of the use of the FIB table create/delete API. VPP now forces the tables to have been explicitly creted before they are used. Change-Id: Ifde3b1bbb76697a01ab71bce4f5264e6d1725467 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-10-12Remove libsubunit 'dependency' for openSUSE and fix NASMMarco Varlese1-1/+4
This patch addresses the unrequired dependency on libsubunit for opensuse; it also adds the required new dependency on check (add check-devel to the top-level Makefile). It adds some extra logic to install the correct NASM version to support AESNI. Change-Id: Ie368dd8f8485a67ab125e735fd12cbe25b9b588f Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-10-10make test: add RETRIES optionKlement Sekera3-20/+93
Change-Id: Ibe31e932bc997f0101a8947e01df90a90d1f100f Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-10-10punt and drop features:Neale Ranns3-2/+281
- new IPv4 and IPv6 feature arcs on the punt and drop nodes - new features: - redirect punted traffic to an interface and nexthop - police punted traffic. Change-Id: I53be8bf4e06545add8a3619e462de5ffedd0a95c Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-10-09TEST,L2-FIB:refactor test-removing shared stateEyal Bari1-179/+135
and remove dependencies between tests Change-Id: I6ceacfdeb65b2d3c64811309358c3bfd47b213ef Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-10-06VCL: add epoll_* functions.Dave Wallace1-2/+2
Change-Id: Ife27795ea96919c116fb6ff33d106663b54df72d Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-10-06Initial GENEVE TUNNEL implementation and tests.Marco Varlese4-0/+335
Notes on this first implementation: * First version of the implementation does NOT support GENEVE OPTIONS HEADER: it isn't well understood what the purpose of the OPTIONS will be and/or what content would be placed in the variable option data; Once the IETF work will evolve and further information will be available it could be possible to modify the frame rewrite to contemplate the actual GENEVE OPTIONS. Change-Id: Iddfe6f408cc45bb0800f00ce6a3e302e48a4ed52 Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-10-05Distributed Virtual Router SupportNeale Ranns3-0/+182
A distributed virtual router works by attmpeting to switch a packet, but on failing to find a local consumer (i.e. the packet is destined to a locally attached host) then the packet is sent unmodified 'upstream' to where the rest of the 'distributed' router is present. When L3 switching a packet this means the L2 header must not be modifed. This patch adds a 'l2-bridge' object to the L3 FIB which re-injects packets from the L3 path back into the L2 path - use with extreme caution. Change-Id: I069724eb45956647d7980cbe40a80a788ee6ee82 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-10-03L2FIB,TEST:add max macs in event testeyal bari1-0/+22
Change-Id: Ied72d44f8695af524751ffc54196cc3ac1addc85 Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-10-03make test: Copy api_post_mortem.$$ file tmp test dir for archiving.Dave Wallace2-7/+13
Change-Id: I4baf89ef383dbc2f309081a6b56b13ebcb8fc2df Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-10-02L2-FIB:add mac learn events testEyal Bari2-0/+27
fixes an issue where events were not sent if BD doesn't enable mac aging Change-Id: Iddc53cb5c45e560633e6c5cff2731dccfc70ad5b Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-09-30make test: Create link to failed test dir on timeout.Dave Wallace2-1/+7
- Also change default coredump configuration from "coredump-size unlimited" to "full-coredump" Change-Id: Iefedc2636f2d9696b7575b34e91dd7be49f601fa Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-09-30make test: archive failed test data with build logs.Dave Wallace2-17/+32
- Fix invocation of compress_failed.sh - Fix compress_failed to copy compressed results files to $WORKSPACE/archives and return failure exit code. Failed test case data will be copied to logs.fd.io and found in the archives/<make test data dir>-FAILED directory in the build log link in the vpp-verify-master-ubuntu1604 jenkins job page. For example: https://logs.fd.io/production/vex-yul-rot-jenkins-1/vpp-verify-master-ubuntu1604/7353/archives/ Change-Id: Ife9a0737115e69c0a8441e3bb0133af1528d909b Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-09-29make test: fix/disable VAPI tests on centosKlement Sekera4-2/+27
Workaround old `check' library on centos. Disable building/running of C++ VAPI test as centos's gcc can't compile our C++ code (vapi.hpp) due to bug. Change-Id: If9da9c7f1bc076f7cdfb9bd3016dfe60a08afa36 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-09-27acl-plugin: take 2 at VPP-991 fix, this time with a test case which verifies it.Andrew Yourtchenko2-1/+40
The replacement of [] with pool_elt_at_index and subsequent fixing it was incorrect - it was equivalent to &[], since it returns a pointer to the element. I've added VPP-993 previously to create a testcase, so this commit partially fulfills that one as well. Change-Id: I5b15e3ce48316f0429232aacf885e8f7c63d9522 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2017-09-27make test: clean ext binaries when doing test-wipeKlement Sekera1-0/+1
Change-Id: I9f5212ee670ea91c6b35f1406c256d0687b9c6b5 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-09-26make test: don't recompile ext if not neededKlement Sekera1-4/+4
Skip recompilation of test binaries from test/ext if these are up-to-date. This speeds up repeated test runs. Change-Id: I96dbfafc372398e3d858d8419219ef35c47bd0f3 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-09-26jvpp: lowering verbosity level for jvpp testsMatej Perina2-56/+55
Change-Id: Ie38dad209cce6d546379b4a5e449b34fbcadf171 Signed-off-by: Matej Perina <mperina@cisco.com>
2017-09-26acl-plugin: test: move the API calls to vpp_papi_provider.pyAndrew Yourtchenko4-152/+79
Change-Id: I1d3818027b8a1fcb1ec12016e3476b5c22a2d5a5 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2017-09-25Refactor multi-host socket_test.sh for bare-metal.Dave Wallace1-18/+51
Change-Id: I4fcde6652e0c66315a453250c6e02cd32176833d Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
span> "]"; return (ss.str()); } dhcp_client::event_listener::event_listener() : m_status(rc_t::NOOP) { } HW::item<bool>& dhcp_client::event_listener::status() { return (m_status); } dhcp_client::event_handler::event_handler() { OM::register_listener(this); inspect::register_handler({ "dhcp" }, "DHCP clients", this); } void dhcp_client::event_handler::handle_replay() { m_db.replay(); } void dhcp_client::event_handler::handle_populate(const client_db::key_t& key) { std::shared_ptr<dhcp_client_cmds::dump_cmd> cmd = std::make_shared<dhcp_client_cmds::dump_cmd>(); HW::enqueue(cmd); HW::write(); for (auto& record : *cmd) { auto& payload = record.get_payload(); std::shared_ptr<interface> itf = interface::find(payload.client.sw_if_index); if (!itf) { VOM_LOG(log_level_t::ERROR) << "dhcp-client dump:" << " itf:" << payload.client.sw_if_index; continue; } const dhcp_client::state_t& s = dhcp_client::state_t::from_vpp(payload.lease.state); route::prefix_t pfx(payload.lease.is_ipv6, (uint8_t*)&payload.lease.host_address.un, payload.lease.mask_width); std::string hostname = reinterpret_cast<const char*>(payload.lease.hostname); l2_address_t l2(payload.client.id + 1); dhcp_client dc(*itf, hostname, l2, payload.client.set_broadcast_flag, from_api(payload.client.dscp)); dc.lease(std::make_shared<dhcp_client::lease_t>( s, itf, from_bytes(0, (uint8_t*)&payload.lease.router_address.un), pfx, hostname, mac_address_t(payload.lease.host_mac))); OM::commit(key, dc); } } dependency_t dhcp_client::event_handler::order() const { return (dependency_t::BINDING); } void dhcp_client::event_handler::show(std::ostream& os) { db_dump(m_db, os); } std::shared_ptr<dhcp_client_cmds::events_cmd> dhcp_client::get_event_cmd() { if (m_s_event_cmd.expired()) { std::shared_ptr<dhcp_client_cmds::events_cmd> c = std::make_shared<dhcp_client_cmds::events_cmd>(m_listener); m_s_event_cmd = c; HW::enqueue(c); HW::write(); return c; } return (m_s_event_cmd.lock()); } void dhcp_client::handle_dhcp_event(std::shared_ptr<lease_t> lease) { m_lease = lease; if (m_evl) m_evl->handle_dhcp_event(m_lease); } void dhcp_client::dhcp_client_listener::handle_dhcp_event(std::shared_ptr<lease_t> e) { /* * Find the client the event references */ std::shared_ptr<dhcp_client> client = find(e->itf->key()); if (client) { client->handle_dhcp_event(e); } } }; // namespace VOM /* * fd.io coding-style-patch-verification: OFF * * Local Variables: * eval: (c-set-style "mozilla") * End: */