aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-01-12Avoid crash in vhost-user driver when running multithreadedDamjan Marion1-0/+6
Change-Id: Ib54575453fd26ba1a7256e9d583c8f8532613ebc Signed-off-by: Carsten Koester <ckoester@cisco.com> Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-01-11Fix vagrant grub issue with ubuntu & virtualboxMatt Johnson1-1/+4
Change-Id: I8ff952a02c9c51070c41bdca72fb4f7ed8a7c8ba Signed-off-by: Matt Johnson <matjohn2@cisco.com>
2016-01-07- ICMP6: Add generic ICMP6 error node. Caller sets code/type fields.Ole Troan8-58/+198
- MAP: Added knob to send unreachable ICMP6 on unmatched binding. Change-Id: I314547cc1157d8a73887e7518ebfe3e68d331650 Signed-off-by: Ole Troan <ot@cisco.com>
2016-01-06MAP: Decrement TTL of payload IPv4 packet.Ole Troan3-2/+36
MAP: Disable direct adjacency domain lookup for decap until IPv4 SA security check is fixed. Change-Id: If85ea73629e46cb09757fe842d79507cf54e37f3 Signed-off-by: Ole Troan <ot@cisco.com>
2016-01-05Merge "Fix dual loop >= 4. Fix format specified for printing u64 counter."Ole Troan3-4/+4
2016-01-05Merge "Warning be gone."Dave Barach1-1/+1
2016-01-05Fix dual loop >= 4. Fix format specified for printing u64 counter.Ole Troan3-4/+4
Change-Id: I314837f6a3482264fc200493a392e744aa1a21c7 Signed-off-by: Ole Troan <ot@cisco.com>
2016-01-05Clean up script to generate LW46 bindings / MAP-E rules.Ole Troan4-785/+53
Change-Id: I3a3949e728f4e4875efddd4f02a55746c998a5ed Signed-off-by: Ole Troan <ot@cisco.com>
2016-01-04Warning be gone.Dave Wallace1-1/+1
Change-Id: I683298c9f1dbff4c1067fb3004b5554fdc8b4ee1 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2016-01-05Merge "Submit initial test framework skeleton."Ed Warnicke20-0/+712
2016-01-04Add --with-plugin-toolkit to README, clean up unwanted filesDave Barach2-1/+3
Change-Id: Ib4d1ee94706711939e03704c655ba355a8f82439 Signed-off-by: Dave Barach <dave@barachs.net>
2016-01-04Emacs-lisp scripts to generate complete vpp pluginsDave Barach12-4/+1271
Change-Id: Id71147a8d5e30aadfb90dc10ea9468cf36ef23a8 Signed-off-by: Dave Barach <dave@barachs.net>
2015-12-23Submit initial test framework skeleton.Stefan Kobza20-0/+712
Change-Id: I1c7cdbbf16c137a6739447d2776595725b798b54 Signed-off-by: Stefan Kobza <skobza@cisco.com>
2015-12-23ylwrap is also autotools autogenerated fileDamjan Marion2-247/+1
Change-Id: Ia6f26b5a12c2fb7847f9325519a99cf928263374 Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-23Merge "Fix to show trace output."Damjan Marion1-4/+7
2015-12-23Merge "Update vagrant/ to install vpp packages and use vppctl"Damjan Marion2-26/+29
2015-12-22Update vagrant/ to install vpp packages and use vppctlEd Warnicke2-26/+29
Change-Id: I30f0cb52152bed174fa82a09fb8584c193df4d2c Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-22Restore vpe-api-test/scripts/vppctlEd Warnicke2-0/+3
Change-Id: I13b472dbf4a95f417ef28efcf8e740dbdd201f7e Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-22Fix to show trace output.Ed Warnicke1-4/+7
Change-Id: I0834eac9c17941d3d5b2aa5791d6deaabd8f6977 Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-18Fix warnings/errors reported by clangDamjan Marion23-26/+26
Change-Id: Ifb2de64347526e3218e22067452f249ff878fd32 Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-18Merge "Add ODL honeycomb VPP agent extensions to vppjapi jni java library."Dave Barach9-92/+640
2015-12-18Merge "Add vpe-api message to get vxlan tunnel details."Dave Barach8-4/+170
2015-12-18Merge "Update version of vppjapi-<ver>.jar to 1.0.0"Dave Barach1-1/+1
2015-12-17Add ODL honeycomb VPP agent extensions to vppjapi jni java library.Dave Wallace9-92/+640
Change-Id: I084ffcf36fbac55c2862035d10b028e35e1e648d Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2015-12-17Add vpe-api message to get vxlan tunnel details.Dave Wallace8-4/+170
Change-Id: I3bfb84dfcb08c6ff5cb473f3ce05b91b222182a1 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2015-12-17Update version of vppjapi-<ver>.jar to 1.0.0Dave Wallace1-1/+1
Change-Id: I710ba9dc9528125dee613e0728a02d065dc9fc76 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2015-12-17Remove redundant functionDamjan Marion1-18/+0
Change-Id: I30db8f678b14303a64ad3aaa16b5caf9081603d8 Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-17Store per-thread node error countersDamjan Marion2-15/+65
This fixed performance issue in muti-threaded setup due to sharing of the same cacheline between multiple threads Change-Id: I930ee44c17a83d4da350d15b4b97b8bb4633a9b0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-17Merge "Move vppctl to vpp-api-test"Ed Warnicke6-18/+2
2015-12-16Merge "Remove warning message outputing vpp-test-api plugin path"Dave Barach1-1/+0
2015-12-16Move vppctl to vpp-api-testDamjan Marion6-18/+2
Change-Id: I4af0eb9c09d14a1a9803cf1b25bc3d7b814c82cc Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-16Fix warnings in policer codeDamjan Marion1-2/+2
Change-Id: Idc6e67ecc6f1b169a63a9d6c962c716a0de32acc Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-16Fix warnings in MAP-T codeDamjan Marion1-1/+1
Change-Id: If211b8b53b462d971eb683305921418224d635e8 Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-16Fix warnings in CNAT codeDamjan Marion1-2/+2
Change-Id: Iabfe38c187b67998b96fbb68f7fc2f1bfe581dfd Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-16Don't send more than one mapping req in l2output nodeDamjan Marion2-3/+17
Change-Id: I4205613818d664abb94b62a33e1353b87d5b1c7d Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-16Remove warning message outputing vpp-test-api plugin pathEd Warnicke1-1/+0
Currently vpp-test-api plugin path is being output everytime vpp-apt-test is run. Change-Id: Ifbceaeeb6272012b2e46fe77178f44255b4861be Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-16Merge "Update .gitignore to ignore autotools files"Dave Barach1-1/+25
2015-12-16Merge "Add DPDK version in "show version verbose" output"Dave Barach1-0/+2
2015-12-16Merge "Introduce support for DPDK 2.2"Dave Barach8-12/+319
2015-12-16Update .gitignore to ignore autotools filesEd Warnicke1-1/+25
Change-Id: I01bb50304dec7461335800916a76e311701ab8c5 Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-16Disable telnet to in default package configEd Warnicke1-1/+0
Change-Id: I1c9ab4454571d7945b7fa3864e08d17cb9f3b5fc Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-16Add missing entries to .gitignoreEd Warnicke1-0/+2
build-root/deb/debian/vpp-dbg/ build-root/deb/debian/vppctl/ where not being appropriately ignored Change-Id: I0bfff50a9a7cdb8dbbba7ac2d081c7501dcf09eb Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-16Add vppctl as a simple cli interface to vppEd Warnicke5-1/+20
This patch provides a pretty simple hack on top of vpe_api_test to give users a cli interface to vpp. Example: sudo vppctl show api client sudo vppctl show int It has the advantage that users can use bash shell scripting and history with it. Change-Id: I621dd8e29269e14a83b4887f20adcfbe5f946b99 Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-16Add DPDK version in "show version verbose" outputDamjan Marion1-0/+2
Change-Id: I14693b81ecc0358683fd4dbfea41d0afc479ad51 Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-16Introduce support for DPDK 2.2Damjan Marion8-12/+319
Change-Id: Id2c7c4a949363a448a6715463dd81f701f046b93 Signed-off-by: Damjan Marion <damarion@cisco.com>
2015-12-15Remove autotools generated productsDave Barach103-368672/+1
Change-Id: I7f23b8b8e5136cb56768bac3a7473e6df5ee4993 Signed-off-by: Dave Barach <dave@barachs.net>
2015-12-15Merge "replacing all vec_sort() invocations to vec_sort_with_function()"Dave Wallace13-40/+186
2015-12-15Merge "Remove vppversion subtree, move elftool to vppinfra"Dave Wallace30-40428/+442
2015-12-15load vpp startup config from fileMatus Fabian1-0/+59
Change-Id: I55c636059cda706a47758ad89e5518e959c85263 Signed-off-by: Matus Fabian <matfabia@cisco.com> Acked-by: Damjan Marion <damarion@cisco.com>
2015-12-15Remove vppversion subtree, move elftool to vppinfraDamjan Marion30-40428/+442
Change-Id: I26b29a0f53f81a28cbf264f5299f9a3978735574 Signed-off-by: Damjan Marion <damarion@cisco.com>
/span> vcm->cfg.preallocated_fifo_pairs; mp->options[APP_OPTIONS_EVT_QUEUE_SIZE] = vcm->cfg.event_queue_size; mp->options[APP_OPTIONS_TLS_ENGINE] = tls_engine; msg.type = APP_SAPI_MSG_TYPE_ATTACH; err = clib_socket_sendmsg (cs, &msg, sizeof (msg), 0, 0); if (err) { clib_error_report (err); return -1; } return 0; } int vcl_sapi_attach (void) { vcl_worker_t *wrk = vcl_worker_get_current (); app_sapi_msg_t _rmp, *rmp = &_rmp; clib_error_t *err; clib_socket_t *cs; int fds[32]; /* * Init client socket and send attach */ if (vcl_api_connect_app_socket (wrk)) return -1; cs = &wrk->app_api_sock; if (vcl_api_send_attach (cs)) return -1; /* * Wait for attach reply */ err = clib_socket_recvmsg (cs, rmp, sizeof (*rmp), fds, ARRAY_LEN (fds)); if (err) { clib_error_report (err); return -1; } if (rmp->type != APP_SAPI_MSG_TYPE_ATTACH_REPLY) return -1; return vcl_api_attach_reply_handler (&rmp->attach_reply, fds); } static int vcl_api_add_del_worker_reply_handler (app_sapi_worker_add_del_reply_msg_t * mp, int *fds) { int n_fds = 0, i, rv; u64 segment_handle; vcl_worker_t *wrk; if (mp->retval) { VDBG (0, "add/del worker failed: %U", format_session_error, mp->retval); goto failed; } if (!mp->is_add) goto failed; wrk = vcl_worker_get_current (); wrk->api_client_handle = mp->api_client_handle; wrk->vpp_wrk_index = mp->wrk_index; wrk->ctrl_mq = vcm->ctrl_mq; segment_handle = mp->segment_handle; if (segment_handle == VCL_INVALID_SEGMENT_HANDLE) { clib_warning ("invalid segment handle"); goto failed; } if (!mp->n_fds) goto failed; if (mp->fd_flags & SESSION_FD_F_VPP_MQ_SEGMENT) if (vcl_segment_attach (vcl_vpp_worker_segment_handle (wrk->wrk_index), "vpp-worker-seg", SSVM_SEGMENT_MEMFD, fds[n_fds++])) goto failed; if (mp->fd_flags & SESSION_FD_F_MEMFD_SEGMENT) { u8 *segment_name = format (0, "memfd-%ld%c", segment_handle, 0); rv = vcl_segment_attach (segment_handle, (char *) segment_name, SSVM_SEGMENT_MEMFD, fds[n_fds++]); vec_free (segment_name); if (rv != 0) goto failed; } vcl_segment_attach_mq (segment_handle, mp->app_event_queue_address, 0, &wrk->app_event_queue); if (mp->fd_flags & SESSION_FD_F_MQ_EVENTFD) { svm_msg_q_set_eventfd (wrk->app_event_queue, fds[n_fds]); vcl_mq_epoll_add_evfd (wrk, wrk->app_event_queue); n_fds++; } VDBG (0, "worker %u vpp-worker %u added", wrk->wrk_index, wrk->vpp_wrk_index); return 0; failed: for (i = clib_max (n_fds - 1, 0); i < mp->n_fds; i++) close (fds[i]); return -1; } int vcl_sapi_app_worker_add (void) { vcl_worker_t *wrk = vcl_worker_get_current (); app_sapi_worker_add_del_msg_t *mp; app_sapi_msg_t _rmp, *rmp = &_rmp; app_sapi_msg_t msg = { 0 }; int fds[SESSION_N_FD_TYPE]; clib_error_t *err; clib_socket_t *cs; /* Connect to socket api */ if (vcl_api_connect_app_socket (wrk)) return -1; /* * Send add worker */ cs = &wrk->app_api_sock; msg.type = APP_SAPI_MSG_TYPE_ADD_DEL_WORKER; mp = &msg.worker_add_del; mp->app_index = vcm->app_index; mp->is_add = 1; err = clib_socket_sendmsg (cs, &msg, sizeof (msg), 0, 0); if (err) { clib_error_report (err); return -1; } /* * Wait for reply and process it */ err = clib_socket_recvmsg (cs, rmp, sizeof (*rmp), fds, ARRAY_LEN (fds)); if (err) { clib_error_report (err); return -1; } if (rmp->type != APP_SAPI_MSG_TYPE_ADD_DEL_WORKER_REPLY) { clib_warning ("unexpected reply type %u", rmp->type); return -1; } return vcl_api_add_del_worker_reply_handler (&rmp->worker_add_del_reply, fds); } void vcl_sapi_app_worker_del (vcl_worker_t * wrk) { app_sapi_worker_add_del_msg_t *mp; app_sapi_msg_t msg = { 0 }; clib_error_t *err; clib_socket_t *cs; cs = &wrk->app_api_sock; msg.type = APP_SAPI_MSG_TYPE_ADD_DEL_WORKER; mp = &msg.worker_add_del; mp->app_index = vcm->app_index; mp->wrk_index = wrk->vpp_wrk_index; mp->is_add = 0; err = clib_socket_sendmsg (cs, &msg, sizeof (msg), 0, 0); if (err) clib_error_report (err); clib_socket_close (cs); } void vcl_sapi_detach (vcl_worker_t * wrk) { clib_socket_t *cs = &wrk->app_api_sock; clib_socket_close (cs); } int vcl_sapi_recv_fds (vcl_worker_t * wrk, int *fds, int n_fds) { app_sapi_msg_t _msg, *msg = &_msg; clib_socket_t *cs; clib_error_t *err; cs = &wrk->app_api_sock; err = clib_socket_recvmsg (cs, msg, sizeof (*msg), fds, n_fds); if (err) { clib_error_report (err); return -1; } if (msg->type != APP_SAPI_MSG_TYPE_SEND_FDS) return -1; return 0; } int vcl_sapi_add_cert_key_pair (vppcom_cert_key_pair_t *ckpair) { u32 cert_len = ckpair->cert_len, key_len = ckpair->key_len, certkey_len; vcl_worker_t *wrk = vcl_worker_get_current (); app_sapi_msg_t _msg = { 0 }, *msg = &_msg; app_sapi_cert_key_add_del_msg_t *mp; app_sapi_msg_t _rmp, *rmp = &_rmp; clib_error_t *err; clib_socket_t *cs; u8 *certkey = 0; int rv = -1; msg->type = APP_SAPI_MSG_TYPE_ADD_DEL_CERT_KEY; mp = &msg->cert_key_add_del; mp->context = wrk->wrk_index; mp->cert_len = cert_len; mp->certkey_len = cert_len + key_len; mp->is_add = 1; certkey_len = cert_len + key_len; vec_validate (certkey, certkey_len - 1); clib_memcpy_fast (certkey, ckpair->cert, cert_len); clib_memcpy_fast (certkey + cert_len, ckpair->key, key_len); cs = &wrk->app_api_sock; err = clib_socket_sendmsg (cs, msg, sizeof (*msg), 0, 0); if (err) { clib_error_report (err); goto done; } err = clib_socket_sendmsg (cs, certkey, certkey_len, 0, 0); if (err) { clib_error_report (err); goto done; } /* * Wait for reply and process it */ err = clib_socket_recvmsg (cs, rmp, sizeof (*rmp), 0, 0); if (err) { clib_error_report (err); goto done; } if (rmp->type != APP_SAPI_MSG_TYPE_ADD_DEL_CERT_KEY_REPLY) { clib_warning ("unexpected reply type %u", rmp->type); goto done; } if (!rmp->cert_key_add_del_reply.retval) rv = rmp->cert_key_add_del_reply.index; done: return rv; } int vcl_sapi_del_cert_key_pair (u32 ckpair_index) { vcl_worker_t *wrk = vcl_worker_get_current (); app_sapi_msg_t _msg = { 0 }, *msg = &_msg; app_sapi_cert_key_add_del_msg_t *mp; app_sapi_msg_t _rmp, *rmp = &_rmp; clib_error_t *err; clib_socket_t *cs; msg->type = APP_SAPI_MSG_TYPE_ADD_DEL_CERT_KEY; mp = &msg->cert_key_add_del; mp->context = wrk->wrk_index; mp->index = ckpair_index; cs = &wrk->app_api_sock; err = clib_socket_sendmsg (cs, msg, sizeof (*msg), 0, 0); if (err) { clib_error_report (err); return -1; } /* * Wait for reply and process it */ err = clib_socket_recvmsg (cs, rmp, sizeof (*rmp), 0, 0); if (err) { clib_error_report (err); return -1; } if (rmp->type != APP_SAPI_MSG_TYPE_ADD_DEL_CERT_KEY_REPLY) { clib_warning ("unexpected reply type %u", rmp->type); return -1; } if (rmp->cert_key_add_del_reply.retval) return -1; return 0; } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */