summaryrefslogtreecommitdiffstats
path: root/src/vlib/threads.c
AgeCommit message (Expand)AuthorFilesLines
2018-06-13Stat segment / client: show run" works nowDave Barach1-0/+20
2018-06-03dpdk: improve buffer alloc perfomanceDamjan Marion1-1/+0
2018-03-27vlib: make cloned structures cacheline alignedDamjan Marion1-13/+23
2018-03-14vlib: internal buffer manager reworkDamjan Marion1-8/+4
2017-12-15VPP-1102: fix dangling references in RPC handlingDave Barach1-0/+3
2017-09-26Add thread-safe event signaller, use RPC where requiredDave Barach1-1/+23
2017-09-15vppinfra: add clib_mem_vm_ext_alloc functionDamjan Marion1-3/+3
2017-09-11Recombine diags and minimum barrier open time changes (VPP-968)Colin Tregenza Dancer1-10/+303
2017-09-05Refork worker thread data structures in parallel (VPP-970)Colin Tregenza Dancer1-136/+197
2017-07-26VPP-905: Wrong define used in function start_workers.JingLiuZTE1-1/+2
2017-06-09Implement sack based tcp loss recovery (RFC 6675)Florin Coras1-1/+1
2017-05-10completelly deprecate os_get_cpu_number, replace new occurencesDamjan Marion1-10/+2
2017-05-09Fix remaining 32-bit compile issuesDamjan Marion1-1/+1
2017-04-06Use thread local storage for thread indexDamjan Marion1-47/+22
2017-03-20vnet: add device-input threadplacement infraDamjan Marion1-10/+4
2017-03-16vlib: additional runtime_data checksDamjan Marion1-8/+14
2017-03-16vlib: make runtime_data thread-localDamjan Marion1-3/+58
2017-03-10vlib: deduplicatee code in main and worker main loopDamjan Marion1-73/+3
2017-03-09vlib_mains == 0 special cases be goneDave Barach1-6/+10
2017-02-06vlib: remove algned/unaligned buffers schemeDamjan Marion1-2/+1
2017-01-14vlib: add buffer and thread callbacksDamjan Marion1-58/+54
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion1-0/+1492
set %d ", vnet_buffer2 (b)->outer_l3_hdr_offset); s = format (s, "outer-l4-hdr-offset %d ", vnet_buffer2 (b)->outer_l4_hdr_offset); } return s; } static u8 * format_vnet_buffer_internal (u8 *s, vlib_buffer_t *b, int no_chain) { u32 indent = format_get_indent (s); u8 *a = 0; #define _(bit,name,ss,v) \ if (v && (b->flags & VNET_BUFFER_F_##name)) \ a = format (a, "%s ", ss); foreach_vnet_buffer_flag #undef _ if (b->flags & VNET_BUFFER_F_OFFLOAD) a = format (a, "%U ", format_vnet_buffer_offload, b); if (b->flags & VNET_BUFFER_F_L2_HDR_OFFSET_VALID) a = format (a, "l2-hdr-offset %d ", vnet_buffer (b)->l2_hdr_offset); if (b->flags & VNET_BUFFER_F_L3_HDR_OFFSET_VALID) a = format (a, "l3-hdr-offset %d ", vnet_buffer (b)->l3_hdr_offset); if (b->flags & VNET_BUFFER_F_L4_HDR_OFFSET_VALID) a = format (a, "l4-hdr-offset %d ", vnet_buffer (b)->l4_hdr_offset); if (b->flags & VNET_BUFFER_F_GSO) a = format (a, "gso l4-hdr-len %d gso-size %d", vnet_buffer2 (b)->gso_l4_hdr_sz, vnet_buffer2 (b)->gso_size); if (b->flags & VNET_BUFFER_F_QOS_DATA_VALID) a = format (a, "qos %d.%d ", vnet_buffer2 (b)->qos.bits, vnet_buffer2 (b)->qos.source); if (b->flags & VNET_BUFFER_F_LOOP_COUNTER_VALID) a = format (a, "loop-counter %d ", vnet_buffer2 (b)->loop_counter); s = format (s, "%U", no_chain ? format_vlib_buffer_no_chain : format_vlib_buffer, b); if (a) s = format (s, "\n%U%v", format_white_space, indent, a); vec_free (a); return s; } u8 * format_vnet_buffer_no_chain (u8 *s, va_list *args) { vlib_buffer_t *b = va_arg (*args, vlib_buffer_t *); return format_vnet_buffer_internal (s, b, 1 /* no_chain */); } u8 * format_vnet_buffer (u8 *s, va_list *args) { vlib_buffer_t *b = va_arg (*args, vlib_buffer_t *); return format_vnet_buffer_internal (s, b, 0 /* no_chain */); } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */