summaryrefslogtreecommitdiffstats
path: root/vpp-api-test
AgeCommit message (Expand)AuthorFilesLines
2016-04-15Add LISP APIAndrej Kozemcak1-3/+792
2016-04-09Add IKEv2 APIsMatus Fabian1-0/+364
2016-04-04Fix vppctl for multivppEd Warnicke1-3/+19
2016-03-31Enable af_packet interfaces in the API test appsDamjan Marion1-0/+6
2016-03-25iOAM trace configuration APIsShwetha1-3/+130
2016-03-07Add sw_interface_clear_stats API callPavel Kotucek1-4/+40
2016-02-26Fixed issue with json output in vpp_api_test.Pavel Kotucek1-1/+2
2016-02-22Added MTU information to sw_interface_dumpPavel1-0/+1
2016-02-19Add custom mac address option to vhost interfaces.Pierre Pfister1-1/+8
2016-02-19Serialize and upload the data plane node graphDave Barach2-3/+195
2016-02-19Per-interface, per-address-family fast packet filterDave Barach1-4/+96
2016-02-10Replace AC_PROG_LIBTOOL with LT_INITDave Barach1-1/+1
2016-01-26Fix vppctl to cope with vpe -> vpp transitionEd Warnicke1-2/+2
2016-01-26Small fix for vppctlEd Warnicke1-6/+7
2016-01-22Enable shared-VM namespace supportDave Barach1-1/+4
2016-01-21PowerPC64-be arch support. Qemu ("qppc") platform support.Dave Barach1-0/+49
2016-01-20Rename vpe binary name to avoid collision with latexDamjan Marion4-10/+10
2016-01-18Enabled vppctl to provide an interactive shellEd Warnicke1-1/+12
2015-12-22Restore vpe-api-test/scripts/vppctlEd Warnicke2-0/+3
2015-12-17Add vpe-api message to get vxlan tunnel details.Dave Wallace3-3/+82
2015-12-17Merge "Move vppctl to vpp-api-test"Ed Warnicke2-0/+3
2015-12-16Move vppctl to vpp-api-testDamjan Marion2-0/+3
2015-12-16Remove warning message outputing vpp-test-api plugin pathEd Warnicke1-1/+0
2015-12-15Remove autotools generated productsDave Barach10-40107/+0
2015-12-15replacing all vec_sort() invocations to vec_sort_with_function()Matus Fabian1-5/+27
2015-12-13new version handlingDamjan Marion1-2/+2
2015-12-08Initial commit of vpp code.v1.0.0Ed Warnicke21-0/+50381
*refills; /* Number of times cpu time base was rescaled. */ u64 cpu_time_base_advances; } timing_wheel_stats_t; typedef struct { /* Each bin is a power of two clock ticks (N) chosen so that 2^N >= min_sched_time. */ u8 log2_clocks_per_bin; /* Wheels are 2^M bins where 2^(N+M) >= max_sched_time. */ u8 log2_bins_per_wheel; /* N + M. */ u8 log2_clocks_per_wheel; /* Number of bits to use in cpu_time_relative_to_base field of timing_wheel_elt_t. */ u8 n_wheel_elt_time_bits; /* 2^M. */ u32 bins_per_wheel; /* 2^M - 1. */ u32 bins_per_wheel_mask; timing_wheel_level_t *levels; timing_wheel_overflow_elt_t *overflow_pool; /* Free list of element vector so we can recycle old allocated vectors. */ timing_wheel_elt_t **free_elt_vectors; timing_wheel_elt_t *unexpired_elts_pending_insert; /* Hash table of user data values which have been deleted but not yet re-inserted. */ uword *deleted_user_data_hash; /* Enable validation for debugging. */ u32 validate; /* Time index. Measures time in units of 2^N clock ticks from when wheel starts. */ u64 current_time_index; /* All times are 32 bit numbers relative to cpu_time_base. So, roughly every 2^(32 + N) clocks we'll need to subtract from all timing_wheel_elt_t times to make sure they never overflow. */ u64 cpu_time_base; /* When current_time_index is >= this we update cpu_time_base to avoid overflowing 32 bit cpu_time_relative_to_base in timing_wheel_elt_t. */ u64 time_index_next_cpu_time_base_update; /* Cached earliest element on wheel; 0 if not valid. */ u64 cached_min_cpu_time_on_wheel; f64 min_sched_time, max_sched_time, cpu_clocks_per_second; timing_wheel_stats_t stats; } timing_wheel_t; /* Initialization function. */ void timing_wheel_init (timing_wheel_t * w, u64 current_cpu_time, f64 cpu_clocks_per_second); /* Insert user data on wheel at given CPU time stamp. */ void timing_wheel_insert (timing_wheel_t * w, u64 insert_cpu_time, u32 user_data); /* Delete user data from wheel (until it is again inserted). */ void timing_wheel_delete (timing_wheel_t * w, u32 user_data); /* Advance wheel and return any expired user data in vector. If non-zero min_next_expiring_element_cpu_time will return a cpu time stamp before which there are guaranteed to be no elements in the current wheel. */ u32 *timing_wheel_advance (timing_wheel_t * w, u64 advance_cpu_time, u32 * expired_user_data, u64 * min_next_expiring_element_cpu_time); /* Returns absolute time in clock cycles of next expiring element. */ u64 timing_wheel_next_expiring_elt_time (timing_wheel_t * w); /* Format a timing wheel. */ format_function_t format_timing_wheel; /* Testing function to validate wheel. */ void timing_wheel_validate (timing_wheel_t * w); #endif /* included_clib_timing_wheel_h */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */