summaryrefslogtreecommitdiffstats
path: root/src/plugins
AgeCommit message (Expand)AuthorFilesLines
2018-11-09dpdk: configure ip4 header checksum rx offload properlyDamjan Marion2-1/+8
2018-11-09GBP: Fix error-strings array in gbp-vxlan4Neale Ranns1-1/+1
2018-11-08vnet: store hw interface speed in kbps instead of using flagsDamjan Marion3-55/+13
2018-11-08avf: update virtchnl header fileDamjan Marion1-18/+32
2018-11-08tlsopenssl: remove unused #includeKlement Sekera1-1/+0
2018-11-08GBP: fix for coverity found errorsNeale Ranns2-6/+8
2018-11-07GBP: Endpoints with VLAN tags and birdges that don't learnNeale Ranns5-17/+77
2018-11-07GBP Endpoint LearningNeale Ranns26-568/+5485
2018-11-07NAT44: fix undesired dependency between static mapping and address from the p...Matus Fabian2-1/+9
2018-11-07vmxnet3: reduce calling vmxnet3_reg_write_inlineSteven3-8/+18
2018-11-06marvell: bump musdk version to 18.09.3Damjan Marion5-17/+35
2018-11-06dpdk: don't automatically whitelist vmxnet3 PCI interfacesSteven1-1/+14
2018-11-06IGMP: Improved handling of (*,G) join and leaveNeale Ranns1-20/+74
2018-11-06VPP-1481: fixed tlv length checking & added testsFilip Varga1-2/+10
2018-11-06dpdk: format_dpdk_device_name cleanupDamjan Marion1-7/+7
2018-11-06dpdk: fix device name suffix confusion with failsafe/netvscStephen Hemminger1-2/+2
2018-11-06dpdk: fix pmd device type when using netvsc or failsafeStephen Hemminger1-1/+1
2018-11-05acl-plugin: 5-tuple parse: get rid of memcpy and move to flags vs. bitfieldsAndrew Yourtchenko3-80/+77
2018-11-02dpdk: restore special handling for failsafe driverStephen Hemminger1-1/+1
2018-11-01Fix API name_crc format stored in msg_api_tableIgor Mikhailov (imichail)3-3/+3
2018-10-31session: add wrk contextFlorin Coras1-5/+5
2018-10-30dpdk: .function should be removed for mutiarch nodesDamjan Marion2-4/+0
2018-10-29migrate ipsec to new multiarch infraKlement Sekera2-31/+10
2018-10-28session: move test to unittest pluginFlorin Coras2-2/+1759
2018-10-28physmem: coverity issuesDamjan Marion1-3/+0
2018-10-27vmxnet3: add logging support to the control plane [VPP-1470]Steven4-17/+87
2018-10-26acl-plugin: fix the node multiarch function selectionAndrew Yourtchenko2-33/+22
2018-10-26vmxnet3: enable promiscuous modeSteven1-1/+1
2018-10-25acl-plugin: "show acl-plugin acl" ACE# is truncated to 4 digits in outputAndrew Yourtchenko1-1/+1
2018-10-25Use correct name to register ABF plugin with ACLsNeale Ranns1-1/+1
2018-10-25pmalloc: support for 4K pagesDamjan Marion1-1/+1
2018-10-25Add x86_64 perfmon tablesDave Barach3-20/+10
2018-10-24dpdk: fix hugepage pre-allocDamjan Marion1-1/+2
2018-10-24acl-plugin: introduce a format function for l4 session keyAndrew Yourtchenko3-48/+77
2018-10-24vppinfra: autodetect default hugepage sizeDamjan Marion1-3/+5
2018-10-23VPP-1474: fix coverity warningDave Barach1-0/+3
2018-10-23perfmon.c: Register additional cpuids.Paul Vinciguerra1-4/+7
2018-10-23Numa-aware, growable physical memory allocator (pmalloc)Damjan Marion12-170/+137
2018-10-23dpdk: support 18.11 changes to CRC flagsStephen Hemminger1-7/+7
2018-10-23dpdk: add esp6 decrypt nodes, func declarationsMatthew Smith1-0/+30
2018-10-23c11 safe string handling supportDave Barach98-335/+482
2018-10-22vlib: pci improvementsDamjan Marion6-46/+50
2018-10-22ipsec fix missing node renamesKlement Sekera3-7/+11
2018-10-22vlib: introduce vlib_buffer_get_{pa,va,current_va,current_pa} inlinesDamjan Marion8-70/+61
2018-10-22vppinfra: use log2 page size in hugepage functionsDamjan Marion1-1/+1
2018-10-22X86_64 perf counter pluginDave Barach5-0/+1466
2018-10-22VPP-1420 CDP check memory bounds fixFilip Varga1-4/+17
2018-10-22Fix dereferencing null string in dpdk_early_initJuraj Sloboda1-0/+1
2018-10-22ipsec: split ipsec nodes into ip4/ip6 nodesKlement Sekera3-71/+254
2018-10-22dpdk: use rte_vfio_dma_map API instead of digging for vfio fdDamjan Marion1-63/+17
MAC; clib_memcpy (&gid_address_mac (dst), src, 6); break; default: /* unknown type */ return VNET_API_ERROR_INVALID_VALUE; } gid_address_vni (dst) = vni; return 0; } static void vl_api_lisp_gpe_add_del_fwd_entry_t_handler (vl_api_lisp_gpe_add_del_fwd_entry_t * mp) { vl_api_lisp_gpe_add_del_fwd_entry_reply_t *rmp; vnet_lisp_gpe_add_del_fwd_entry_args_t _a, *a = &_a; locator_pair_t *pairs = 0; int rv = 0; memset (a, 0, sizeof (a[0])); rv = unformat_lisp_eid_api (&a->rmt_eid, mp->vni, mp->eid_type, mp->rmt_eid, mp->rmt_len); rv |= unformat_lisp_eid_api (&a->lcl_eid, mp->vni, mp->eid_type, mp->lcl_eid, mp->lcl_len); pairs = unformat_lisp_loc_pairs (mp->lcl_locs, mp->rmt_locs, mp->loc_num); if (rv || 0 == pairs) goto send_reply; a->is_add = mp->is_add; a->locator_pairs = pairs; a->dp_table = mp->dp_table; a->vni = mp->vni; a->action = mp->action; rv = vnet_lisp_gpe_add_del_fwd_entry (a, 0); vec_free (pairs); send_reply: REPLY_MACRO (VL_API_LISP_GPE_ADD_DEL_FWD_ENTRY_REPLY); } static void vl_api_lisp_gpe_enable_disable_t_handler (vl_api_lisp_gpe_enable_disable_t * mp) { vl_api_lisp_gpe_enable_disable_reply_t *rmp; int rv = 0; vnet_lisp_gpe_enable_disable_args_t _a, *a = &_a; a->is_en = mp->is_en; vnet_lisp_gpe_enable_disable (a); REPLY_MACRO (VL_API_LISP_GPE_ENABLE_DISABLE_REPLY); } static void vl_api_lisp_gpe_add_del_iface_t_handler (vl_api_lisp_gpe_add_del_iface_t * mp) { vl_api_lisp_gpe_add_del_iface_reply_t *rmp; int rv = 0; if (mp->is_l2) { if (mp->is_add) { if (~0 == lisp_gpe_tenant_l2_iface_add_or_lock (mp->vni, mp->dp_table)) rv = 1; } else lisp_gpe_tenant_l2_iface_unlock (mp->vni); } else { if (mp->is_add) { if (~0 == lisp_gpe_tenant_l3_iface_add_or_lock (mp->vni, mp->dp_table)) rv = 1; } else lisp_gpe_tenant_l3_iface_unlock (mp->vni); } REPLY_MACRO (VL_API_LISP_GPE_ADD_DEL_IFACE_REPLY); } static void send_lisp_gpe_fwd_entry_details (lisp_gpe_fwd_entry_t * lfe, unix_shared_memory_queue_t * q, u32 context) { vl_api_lisp_gpe_tunnel_details_t *rmp; lisp_gpe_main_t *lgm = &lisp_gpe_main; rmp = vl_msg_api_alloc (sizeof (*rmp)); memset (rmp, 0, sizeof (*rmp)); rmp->_vl_msg_id = ntohs (VL_API_LISP_GPE_TUNNEL_DETAILS); rmp->tunnels = lfe - lgm->lisp_fwd_entry_pool; rmp->is_ipv6 = ip_prefix_version (&(lfe->key->rmt.ippref)) == IP6 ? 1 : 0; ip_address_copy_addr (rmp->source_ip, &ip_prefix_addr (&(lfe->key->rmt.ippref))); ip_address_copy_addr (rmp->destination_ip, &ip_prefix_addr (&(lfe->key->rmt.ippref))); rmp->encap_fib_id = htonl (0); rmp->decap_fib_id = htonl (lfe->eid_fib_index); rmp->iid = htonl (lfe->key->vni); rmp->context = context; vl_msg_api_send_shmem (q, (u8 *) & rmp); } static void vl_api_lisp_gpe_tunnel_dump_t_handler (vl_api_lisp_gpe_tunnel_dump_t * mp) { unix_shared_memory_queue_t *q = NULL; lisp_gpe_main_t *lgm = &lisp_gpe_main; lisp_gpe_fwd_entry_t *lfe = NULL; if (pool_elts (lgm->lisp_fwd_entry_pool) == 0) { return; } q = vl_api_client_index_to_input_queue (mp->client_index); if (q == 0) { return; } /* *INDENT-OFF* */ pool_foreach(lfe, lgm->lisp_fwd_entry_pool, ({ send_lisp_gpe_fwd_entry_details(lfe, q, mp->context); })); /* *INDENT-ON* */ } /* * lisp_gpe_api_hookup * Add vpe's API message handlers to the table. * vlib has alread mapped shared memory and * added the client registration handlers. * See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process() */ #define vl_msg_name_crc_list #include <vnet/vnet_all_api_h.h> #undef vl_msg_name_crc_list static void setup_message_id_table (api_main_t * am) { #define _(id,n,crc) vl_msg_api_add_msg_name_crc (am, #n "_" #crc, id); foreach_vl_msg_name_crc_lisp_gpe; #undef _ } static clib_error_t * lisp_gpe_api_hookup (vlib_main_t * vm) { api_main_t *am = &api_main; #define _(N,n) \ vl_msg_api_set_handlers(VL_API_##N, #n, \ vl_api_##n##_t_handler, \ vl_noop_handler, \ vl_api_##n##_t_endian, \ vl_api_##n##_t_print, \ sizeof(vl_api_##n##_t), 1); foreach_vpe_api_msg; #undef _ /* * Set up the (msg_name, crc, message-id) table */ setup_message_id_table (am); return 0; } VLIB_API_INIT_FUNCTION (lisp_gpe_api_hookup); /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */