summaryrefslogtreecommitdiffstats
path: root/src/svm/svm_fifo.c
AgeCommit message (Expand)AuthorFilesLines
2019-08-05svm: fix fifo growth on dequeue with dropFlorin Coras1-0/+6
2019-07-03svm: fix multi-chunk fifo alloc and add more testsFlorin Coras1-6/+97
2019-06-25svm: make sure chunk search does not return tnilFlorin Coras1-0/+2
2019-06-24session: full lock on session_send_evt_to_threadNathan Skrzypczak1-2/+2
2019-05-07svm: decouple fifo and default chunk allocationFlorin Coras1-8/+20
2019-05-03session/svm: apis for fifo shrinkingFlorin Coras1-1/+4
2019-05-03svm: basic support for fifo shrinkingFlorin Coras1-54/+208
2019-05-03svm: store normalized head/tail for fifoFlorin Coras1-23/+21
2019-04-30svm: more fifo refactor/cleanupFlorin Coras1-383/+385
2019-04-27svm: fix fifo tail/head/ooo logic for u32 wrapFlorin Coras1-2/+2
2019-04-26svm: fifo segment support for chunk allocationFlorin Coras1-2/+38
2019-04-25session: cleanup segment manager and fifo segmentFlorin Coras1-2/+2
2019-04-24svm: fifo ooo reads/writes with multiple chunksFlorin Coras1-48/+153
2019-04-20svm: reorganize fifo march codeFlorin Coras1-169/+176
2019-04-19svm: support addition of chunks to fifosFlorin Coras1-4/+6
2019-04-18svm: allow indirect fifo data chunksFlorin Coras1-134/+124
2019-04-16svm_fifo rework to avoid contention on cursizeSirshak Das1-206/+229
2019-04-08host stack: update stale copyrightFlorin Coras1-1/+1
2019-01-17vcl/session: replicate events for shared sessionsFlorin Coras1-0/+23
2018-11-30session: segment handle in accept/connect notificationsFlorin Coras1-0/+1
2018-11-28Use acquire/release ordering when accessing svm_fifo shared variable cursizeSirshak Das1-5/+5
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach1-16/+17
2018-10-25session/tcp: improve cliFlorin Coras1-10/+15
2018-10-23c11 safe string handling supportDave Barach1-17/+18
2018-10-19vppinfra: add atomic macros for __sync builtinsSirshak Das1-5/+5
2018-10-05session: fix local session tagging and cleanupFlorin Coras1-0/+1
2018-09-24svm: march svm_fifo take 2Florin Coras1-71/+17
2018-09-18svm: better march support for svm fifoFlorin Coras1-96/+84
2018-09-12vcl: add apis that expos fifo as bufferFlorin Coras1-0/+47
2018-07-27vcl: use events for epoll/select/read/writeFlorin Coras1-1/+1
2018-06-11tcp: cleanup connection/session fixesFlorin Coras1-0/+7
2018-06-01session: improve disconnect handlingFlorin Coras1-1/+2
2018-05-09session: cleanup session tx functionFlorin Coras1-3/+3
2018-04-18udp/session: refactor to support dgram modeFlorin Coras1-1/+18
2018-03-02session: first approximation implementation of tlsFlorin Coras1-4/+6
2017-09-08Fixes for issues reported by Coverity (VPP-972)Chris Luke1-1/+1
2017-08-25tcp: retransmit and multi-buffer segment fixes and improvementsFlorin Coras1-7/+7
2017-08-10Improve the svm fifo allocatorDave Barach1-1/+4
2017-08-10TCP proxy prototypeDave Barach1-2/+8
2017-07-15Fixes and improved tcp/session debuggingFlorin Coras1-40/+110
2017-07-11Horizontal (nSessions) scaling draftDave Barach1-17/+39
2017-06-22Improve svm fifo and tcp tx path performance (VPP-846)Florin Coras1-5/+90
2017-06-19Overall tcp performance improvements (VPP-846)Florin Coras1-68/+84
2017-06-09Implement sack based tcp loss recovery (RFC 6675)Florin Coras1-2/+3
2017-05-20Improve session debuggingFlorin Coras1-4/+5
2017-05-01TCP ooo reception fixesFlorin Coras1-75/+69
2017-04-24Session layer improvementsFlorin Coras1-18/+12
2017-04-19Add more svm fifo unit testsFlorin Coras1-54/+46
2017-04-18Fix fifo ooo bugs and improve testingDave Barach1-35/+91
2017-04-13Session layer refactoringFlorin Coras1-22/+44
class="p">(sizeof *ls_mem, 0, 0, 1); /* Set to zero the memory */ clib_memset (ls_mem, 0, sizeof *ls_mem); /* Our brand-new car is ready */ clib_memcpy (&ls_mem->nh_addr.ip6, &nh_addr.ip6, sizeof (ip6_address_t)); ls_mem->sw_if_index_out = sw_if_index_out; ls_mem->sw_if_index_in = sw_if_index_in; /* Dont forget to add it to the localsid */ *plugin_mem_p = ls_mem; return 1; } return 0; } /*************************/ /* SRv6 LocalSID FIB DPO */ static u8 * format_srv6_am_dpo (u8 * s, va_list * args) { index_t index = va_arg (*args, index_t); CLIB_UNUSED (u32 indent) = va_arg (*args, u32); return (format (s, "SR: dynamic_proxy_index:[%u]", index)); } void srv6_am_dpo_lock (dpo_id_t * dpo) { } void srv6_am_dpo_unlock (dpo_id_t * dpo) { } const static dpo_vft_t srv6_am_vft = { .dv_lock = srv6_am_dpo_lock, .dv_unlock = srv6_am_dpo_unlock, .dv_format = format_srv6_am_dpo, }; const static char *const srv6_am_ip6_nodes[] = { "srv6-am-localsid", NULL, }; const static char *const *const srv6_am_nodes[DPO_PROTO_NUM] = { [DPO_PROTO_IP6] = srv6_am_ip6_nodes, }; /**********************/ static clib_error_t * srv6_am_init (vlib_main_t * vm) { srv6_am_main_t *sm = &srv6_am_main; int rv = 0; sm->vlib_main = vm; sm->vnet_main = vnet_get_main (); /* Create DPO */ sm->srv6_am_dpo_type = dpo_register_new_type (&srv6_am_vft, srv6_am_nodes); /* Register SRv6 LocalSID */ rv = sr_localsid_register_function (vm, function_name, keyword_str, def_str, params_str, &sm->srv6_am_dpo_type, format_srv6_am_localsid, unformat_srv6_am_localsid, srv6_am_localsid_creation_fn, srv6_am_localsid_removal_fn); if (rv < 0) clib_error_return (0, "SRv6 LocalSID function could not be registered."); else sm->srv6_localsid_behavior_id = rv; return 0; } /* *INDENT-OFF* */ VNET_FEATURE_INIT (srv6_am_rewrite, static) = { .arc_name = "ip6-unicast", .node_name = "srv6-am-rewrite", .runs_before = 0, }; VLIB_INIT_FUNCTION (srv6_am_init); VLIB_PLUGIN_REGISTER () = { .version = VPP_BUILD_VER, .description = "Masquerading Segment Routing for IPv6 (SRv6) Proxy", }; /* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */