aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Expand)AuthorFilesLines
2023-06-01hs-test: fix vcl test parameterFilip Tehlar1-1/+1
2023-06-01crypto: make crypto-dispatch node working in adaptive modeXiaoming Jiang13-237/+33
2023-05-31fib: fix memory leak in fib_attached_export_purgeStanislav Zaikin1-0/+1
2023-05-30misc: fix tracedump APIMaxime Peim1-1/+2
2023-05-30virtio: fix the packet buffering initialization orderMohsin Kazmi2-11/+21
2023-05-30libmemif: add testing applicationMohsin Kazmi3-1/+317
2023-05-29ipsec: fix ipsec_set_next_index set with wrong sa index when async frame comm...Xiaoming Jiang3-27/+39
2023-05-27vppinfra: add bit_extract_u32 and bit_extract_u64Damjan Marion1-0/+42
2023-05-27vlib: add foreach_vlib_frame_bitmap_set_bit_index to .clang-formatDamjan Marion1-0/+1
2023-05-27vlib: add vlib_log_is_enabledDamjan Marion2-20/+34
2023-05-26linux-cp: update adjs for subifs too when mac changesAlexander Chernavin1-4/+21
2023-05-26tls: fix memory leak when client/server init errorXiaoming Jiang1-2/+18
2023-05-25udp: fix local port reuse checkFlorin Coras2-2/+5
2023-05-24hs-test: add vcl echo testsFilip Tehlar3-32/+63
2023-05-24hash: add hash documentationMohsin Kazmi3-0/+92
2023-05-24misc: Initial 23.10-rc0 commitv23.10-rc0Andrew Yourtchenko2-1/+1
2023-05-24misc: VPP 23.02 Release NotesAndrew Yourtchenko2-0/+542
2023-05-23vcl: avoid reusing user provided events in lt modeFlorin Coras1-4/+6
2023-05-23misc: fix tracedump API to match CLI behaviorMaxime Peim3-4/+227
2023-05-23bufmon: ptd should be alloced in main threadXiaoming Jiang1-1/+2
2023-05-22teib: fix nh-table-idStanislav Zaikin1-41/+38
2023-05-21mpls: implement state change callbacksAdrian Pistol2-5/+37
2023-05-21ip-neighbor: fix aged neighbor probeSergio Gonzalez Monroy1-2/+2
2023-05-20hsa: add an option to configure ns in http cliFilip Tehlar1-1/+16
2023-05-20hs-test: support for multiple workersFilip Tehlar13-48/+173
2023-05-20tests: support for expected failuresKlement Sekera4-156/+204
2023-05-20tests: enhance counter comparison error messageKlement Sekera2-4/+8
2023-05-19misc: long overdue update to maintainers fileSergio Gonzalez Monroy1-1/+0
2023-05-19tests: refactor extra_vpp_punt_configKlement Sekera6-11/+11
2023-05-19stats: fix memory leak in stat_segment_dump_r()Duncan Eastoe1-0/+2
2023-05-19fib: fix load-balance and replicate dpos buckets overflowBenoît Ganne5-53/+132
2023-05-19dpdk: fix compatibility with DPDK < 21.11Andrew Ying2-2/+1
2023-05-19tls: flag no app session on handshake failureFlorin Coras1-1/+1
2023-05-19dpdk: fix format device name using wrong indexDaniel Ding1-10/+10
2023-05-19vcl: set want deq flag earlier in epoll ctl modFlorin Coras1-8/+10
2023-05-19vcl: always reset deq ntf flag in epoll evt handlerFlorin Coras1-2/+2
2023-05-19interface: add the transmit queue infrastructure documentMohsin Kazmi4-0/+164
2023-05-19hsa: make http cli client thread safeFilip Tehlar1-6/+29
2023-05-16hsa: detach app on unsuccessful listenFilip Tehlar1-0/+12
2023-05-16vcl: avoid skipping last event in epoll ltFlorin Coras1-4/+9
2023-05-16ip_session_redirect: add session redirect pluginBenoît Ganne15-2/+1284
2023-05-16dpdk: fix format rx/tx burst function name failedXiaoming Jiang3-14/+30
2023-05-16ethernet: fix adding p2p ethernet crashXiaoming Jiang1-5/+6
2023-05-16memif: fix coverity warningsMarvin Liu3-8/+7
2023-05-16misc: make format_hexdump length u32Benoît Ganne2-4/+3
2023-05-16flow: fix wrong to use ntohl function to u64 type variableYulong Pei1-1/+1
2023-05-16vppinfra: add aarch64 support for format_ucontext_pcTianyu Li1-0/+4
2023-05-15hsi: interop with ip reassemblyFlorin Coras1-19/+46
2023-05-15packetforge: add option to show spec and mask onlyTing Xu4-40/+141
2023-05-15udp: improvements to connection format fnFlorin Coras1-3/+6
s="cp"> sde->counters[SESS_Q_CLK_UPDATE_TIME].f64 += _diff; #define SESSION_EVT_DSP_CNTRS_MQ_DEQ_HANDLER(_wrk, _diff, _cnt, _args...) \ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \ sde->counters[SESS_Q_CNT_MQ_EVTS].u64 += _cnt; \ sde->counters[SESS_Q_CLK_MQ_DEQ].f64 += _diff; #define SESSION_EVT_DSP_CNTRS_CTRL_EVTS_HANDLER(_wrk, _diff, _args...) \ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \ sde->counters[SESS_Q_CLK_CTRL_EVTS].f64 += _diff; \ sde->prev_io = sde->counters[SESS_Q_CNT_IO_EVTS].u64; \ #define SESSION_EVT_DSP_CNTRS_NEW_IO_EVTS_HANDLER(_wrk, _diff, _args...) \ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \ sde->counters[SESS_Q_CLK_NEW_IO_EVTS].f64 += _diff; \ sde->counters[SESS_Q_CNT_NEW_EVTS].u64 += \ sde->counters[SESS_Q_CNT_IO_EVTS].u64 - sde->prev_io; \ sde->prev_io = sde->counters[SESS_Q_CNT_IO_EVTS].u64; \ #define SESSION_EVT_DSP_CNTRS_OLD_IO_EVTS_HANDLER(_wrk, _diff, _args...) \ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \ sde->counters[SESS_Q_CLK_OLD_IO_EVTS].f64 += _diff; \ sde->counters[SESS_Q_CNT_OLD_EVTS].u64 += \ sde->counters[SESS_Q_CNT_IO_EVTS].u64 - sde->prev_io; \ #define SESSION_EVT_DSP_CNTRS_HANDLER(_disp_evt, _wrk, _args...) \ { \ f64 time_now = vlib_time_now (_wrk->vm), diff; \ diff = time_now - session_dbg_main.wrk[_wrk->vm->thread_index].last_time; \ session_dbg_main.wrk[_wrk->vm->thread_index].last_time = time_now; \ CC(CC(SESSION_EVT_DSP_CNTRS_,_disp_evt),_HANDLER)(wrk, diff, _args); \ } #else #define SESSION_EVT_DSP_CNTRS_HANDLER(_disp_evt, _wrk, _args...) #endif /*SESSION_CLOCKS_EVT_DBG */ #if SESSION_COUNTS_EVT_DBG #define SESSION_EVT_COUNTS_HANDLER(_node_evt, _cnt, _wrk) \ { \ session_dbg_main.wrk[_wrk->vm->thread_index]. \ counters[SESS_Q_##_node_evt].u64 += _cnt; \ } #define SESSION_IO_EVT_COUNTS_HANDLER(_node_evt, _cnt, _wrk) \ { \ u8 type = SESS_Q_BASE_OFFSET_IO_EVTS + _node_evt + 1; \ session_dbg_evts_t *sde; \ sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \ sde->counters[type].u64 += _cnt; \ sde->counters[SESS_Q_CNT_IO_EVTS].u64 += _cnt ; \ } #else #define SESSION_EVT_COUNTS_HANDLER(_node_evt, _cnt, _wrk) #define SESSION_IO_EVT_COUNTS_HANDLER(_node_evt, _cnt, _wrk) #endif /*SESSION_COUNTS_EVT_DBG */ #define SESSION_EVT_DISPATCH_START_HANDLER(_wrk) \ { \ session_dbg_evts_t *sde; \ sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \ if (SESSION_DEQ_EVTS > 1) \ SESSION_EVT_DEQ_NODE_HANDLER (_wrk, 0, 0); \ SESSION_EVT_POLL_GAP_TRACK_HANDLER (wrk); \ sde->counters[SESS_Q_##CNT_NODE_CALL].u64 +=1; \ sde->last_time = vlib_time_now (_wrk->vm); \ } #define SESSION_EVT_DISPATCH_END_HANDLER(_wrk, _ntx) \ { \ f64 now = vlib_time_now (_wrk->vm); \ session_dbg_evts_t *sde; \ sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \ if (_ntx) \ SESSION_EVT_DEQ_NODE_HANDLER (_wrk, 1, _ntx); \ SESSION_EVT_POLL_DISPATCH_TIME_HANDLER(_wrk); \ _wrk->last_event_poll = now; \ sde->counters[SESS_Q_CLK_TOTAL].f64 += now - _wrk->last_vlib_time; \ sde->counters[SESS_Q_CLK_START].f64 = now - sde->start_time; \ } #define CONCAT_HELPER(_a, _b) _a##_b #define CC(_a, _b) CONCAT_HELPER(_a, _b) #define SESSION_EVT(_evt, _args...) CC(_evt, _HANDLER)(_args) #else #define SESSION_EVT(_evt, _args...) #define SESSION_DBG(_fmt, _args...) #endif /* SESSION_DEBUG */ void session_debug_init (void); #endif /* SRC_VNET_SESSION_SESSION_DEBUG_H_ */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */