aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/dpo
AgeCommit message (Expand)AuthorFilesLines
2020-02-17misc: fix coverity warningsDave Barach1-2/+2
2020-01-10docs: Edit FEATURE.yaml files so they can be publishedJohn DeNisco1-1/+1
2020-01-03fib: Add dpo FEATURE.yaml fileNeale Ranns1-0/+15
2019-10-09mpls: support fragmentation of mpls output packetRajesh Goel1-0/+18
2019-09-25fib: fix some typos in fib/mtrieLijian.Zhang4-4/+4
2019-08-29ip: remove unused function parameterSimon Zhang1-3/+3
2019-08-15vlib: copy trace_handle in vlib_buffer_copy/clone() functionsJohn Lo1-4/+1
2019-07-24fib: Support the POP of a Psuedo Wire Control WordNeale Ranns4-0/+399
2019-06-26fib: default flow hash config for each DPO protocol typeNeale Ranns2-0/+23
2019-06-18fib: fib api updatesNeale Ranns1-7/+23
2019-06-06DVR: Control the reinject as L2 or L3 based on the output interface typeNeale Ranns2-10/+83
2019-05-16init / exit function orderingDave Barach1-4/+9
2019-04-08fixing typosJim Thompson1-1/+1
2019-03-28Typos. A bunch of typos I've been collecting.Paul Vinciguerra2-6/+6
2019-03-11dpo: migrate old MULTIARCH macros to VLIB_NODE_FNFilip Tehlar5-157/+51
2019-02-14Add -fno-common compile optionBenoƮt Ganne6-4/+8
2018-12-18MFIB: recurse resolution through an MFIB entryNeale Ranns4-0/+113
2018-12-16IP6-MFIB: replace the radix tree with bihash (VPP-1526)Neale Ranns1-3/+3
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach2-3/+3
2018-11-02vlib: define minimum chained buffer segment sizeDamjan Marion1-1/+2
2018-10-23c11 safe string handling supportDave Barach8-8/+8
2018-10-16FIB: use vlib-log for debuggingNeale Ranns3-33/+39
2018-10-16Sticky Load-balanceNeale Ranns2-24/+130
2018-10-08replicate trace fixNeale Ranns1-2/+6
2018-10-01mroute routers in the stats segmentNeale Ranns1-1/+6
2018-09-20Route counters in the stats segmentNeale Ranns1-1/+10
2018-09-14BIER API and load-balancing fixesNeale Ranns1-2/+2
2018-08-30SR-MPLS: fixes and testsNeale Ranns1-1/+1
2018-08-22show command for lookup DPOsNeale Ranns1-0/+40
2018-08-03loop counter to prevent infiinte number of look ups per-packetNeale Ranns1-1/+84
2018-07-19Remove unused argument to vlib_feature_nextDamjan Marion1-6/+3
2018-07-11avoid using thread local storage for thread indexDamjan Marion1-1/+1
2018-06-26node functions cannot be always_inlineDamjan Marion1-10/+10
2018-05-26Fix interface-rx-dpo-l2 node to setup l2_len in vnet bufferJohn Lo1-4/+16
2018-05-04Harmonize vec/pool_get_aligned object sizes and alignment requestsDave Barach9-0/+53
2018-04-24memory leakKingwel Xie1-0/+3
2018-04-12Fixes for 'make UNATTENDED=yes CC=clang CXX=clang verify'Neale Ranns1-10/+1
2018-04-09DVR: save the rewrite length in packet meta-data for featuresNeale Ranns1-3/+9
2018-03-20FIB Interpose SourceNeale Ranns5-26/+114
2018-03-19Coverity found bugs in recent MPLS changesNeale Ranns2-2/+2
2018-03-19FIX: Fixed ip6_fib_dump api function response.Dmitry Vakhrushev2-0/+8
2018-03-15Add a helper function to fetch vlib node index for already stacked dposVijayabhaskar Katamreddy2-0/+40
2018-03-09MPLS Unifom modeNeale Ranns5-329/+1150
2018-03-05IP6 link-local tableNeale Ranns4-0/+245
2018-02-07Refactor vlib_buffer flagsDamjan Marion1-6/+6
2018-02-06BIER: fix support for longer bit-string lengthsNeale Ranns1-1/+2
2018-01-09DVR: run L3 output featuresNeale Ranns6-436/+661
2017-12-20L2 EmulationNeale Ranns1-1/+1
2017-12-09BIER in non-MPLS netowrksNeale Ranns2-0/+11
2017-12-06Label stack size exceeded fixNeale Ranns2-1/+19
pan class="n">u32 chunk_size, u32 batch_size); /** * Pre-allocates fifo pairs in fifo segment * * The number of fifos pre-allocated is the minimum of the requested number * of pairs and the maximum number that fit within the segment. If the maximum * is hit, the number of fifo pairs requested is updated by subtracting the * number of fifos that have been successfully allocated. * * @param fs fifo segment for fifo * @param rx_fifo_size data size of rx fifos * @param tx_fifo_size data size of tx fifos * @param n_fifo_pairs number of pairs requested. Prior to returning, this * is decremented by the the number of pairs allocated. */ void fifo_segment_preallocate_fifo_pairs (fifo_segment_t * fs, u32 rx_fifo_size, u32 tx_fifo_size, u32 * n_fifo_pairs); /** * Allocate chunks in fifo segment * * @param fsh fifo segment header * @param slice_index slice where chunks should be alocated * @param chunk_size chunk size needed * @return chunk (or chunks) that cover at least chunk_size bytes * on success, 0 on failure. */ svm_fifo_chunk_t *fsh_alloc_chunk (fifo_segment_header_t * fsh, u32 slice_index, u32 chunk_size); /** * Return chunks to fifo segment * * @param fsh fifo segment header * @param slice_index slice where chunks should be returned * @param c pointer to first chunk in 0 terminated linked list */ void fsh_collect_chunks (fifo_segment_header_t * fsh, u32 slice_index, svm_fifo_chunk_t * c); /** * Fifo segment has reached mem limit * * @param fsh fifo segment header * @return 1 (if reached) or 0 (otherwise) */ u8 fsh_has_reached_mem_limit (fifo_segment_header_t * fsh); /** * Fifo segment reset mem limit flag * * @param fs fifo segment */ void fsh_reset_mem_limit (fifo_segment_header_t * fsh); /** * Fifo segment allocated size * * Returns fifo segment's allocated size * * @param fs fifo segment * @return allocated size in bytes */ uword fifo_segment_size (fifo_segment_t * fs); /** * Fifo segment estimate of number of free bytes * * Returns fifo segment's internal estimate of the number of free bytes. * To force a synchronization between the segment and the underlying * memory allocator, call @ref fifo_segment_update_free_bytes * * @param fs fifo segment * @return free bytes estimate */ uword fifo_segment_free_bytes (fifo_segment_t * fs); /** * Update fifo segment free bytes estimate * * Forces fifo segment free bytes estimate synchronization with underlying * memory allocator. * * @param fs fifo segment */ void fifo_segment_update_free_bytes (fifo_segment_t * fs); /** * Fifo segment number of cached bytes * * Returns fifo segment's number of cached bytes. * * @param fs fifo segment * @return cached bytes */ uword fifo_segment_cached_bytes (fifo_segment_t * fs); uword fifo_segment_available_bytes (fifo_segment_t * fs); /** * Number of bytes on chunk free lists * * @param fs fifo segment * @return free bytes on chunk free lists */ uword fifo_segment_fl_chunk_bytes (fifo_segment_t * fs); u8 fifo_segment_has_fifos (fifo_segment_t * fs); svm_fifo_t *fifo_segment_get_slice_fifo_list (fifo_segment_t * fs, u32 slice_index); u32 fifo_segment_num_fifos (fifo_segment_t * fs); u32 fifo_segment_num_free_fifos (fifo_segment_t * fs); /** * Find number of free chunks of given size * * @param fs fifo segment * @param size chunk size of interest or ~0 if all should be counted * @return number of chunks of given size */ u32 fifo_segment_num_free_chunks (fifo_segment_t * fs, u32 size); u8 fifo_segment_get_mem_usage (fifo_segment_t * fs); fifo_segment_mem_status_t fifo_segment_determine_status (fifo_segment_header_t * fsh, u8 usage); fifo_segment_mem_status_t fifo_segment_get_mem_status (fifo_segment_t * fs); void fifo_segment_main_init (fifo_segment_main_t * sm, u64 baseva, u32 timeout_in_seconds); format_function_t format_fifo_segment; format_function_t format_fifo_segment_type; #endif /* __included_fifo_segment_h__ */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */