summaryrefslogtreecommitdiffstats
path: root/src/scripts
AgeCommit message (Expand)AuthorFilesLines
2017-12-13NAT64: multi-thread support (VPP-891)Matus Fabian2-0/+86
2017-10-30Remove old Python vppctl scriptChris Luke1-134/+0
2017-10-16udp: refactor udp codeFlorin Coras2-25/+72
2017-08-23NAT: Rename snat plugin to nat (VPP-955)Matus Fabian4-10/+10
2017-08-04SNAT: fix address and port allocation for multiple worker threads (VPP-925)Matus Fabian1-5/+12
2017-05-09Add support for tcp/session buffer chainsFlorin Coras1-2/+17
2017-05-05First commit SR MPLSPablo Camarillo7-118/+11
2017-04-19Fix "make dist" to include version number, docouple it from rpm packagingDamjan Marion1-8/+4
2017-04-13Session layer refactoringFlorin Coras1-1/+2
2017-03-13VPP-659 Improve tcp/session debugging and testingFlorin Coras1-0/+4
2017-03-10VPP-659 TCP improvementsFlorin Coras3-3/+28
2017-03-07DHCP Multiple Servers (VPP-602, VPP-605)Neale Ranns1-1/+2
2017-03-07CGN: Deterministic NAT (VPP-623)Matus Fabian1-0/+108
2017-03-04Cleanup URI code and TCP bugfixingFlorin Coras2-0/+66
2017-03-01VPP-598: tcp stack initial commitDave Barach5-8/+91
2017-02-28vlib: add buffer cloning supportDamjan Marion1-8/+11
2017-02-21dhcp: multiple additionsNeale Ranns1-0/+21
2017-02-02Fix SR multicast post mfib commitNeale Ranns1-0/+58
2017-01-27IP Multicast FIB (mfib)Neale Ranns1-0/+22
2017-01-27Add multi-vpp support back into pythonic vppctlEd Warnicke1-7/+20
2017-01-25[re]Enable per-Adjacency/neighbour countersNeale Ranns1-2/+16
2017-01-21Fix issue in rpm versioning for release buildsDamjan Marion1-1/+1
2017-01-13vppctl: new bash completion for vppctl commandsPadraig Connolly1-0/+30
2017-01-10Revert "vppctl: bash completion for vppctl commands"Damjan Marion1-30/+0
2017-01-09vppctl: bash completion for vppctl commandsPadraig Connolly1-0/+30
2017-01-03fix version.h generation for out-of-tree buildsDamjan Marion1-0/+54
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion78-0/+3766
vectors. Data is entropy coded with 32 bit "codings". Consider coding as bitmap, coding = 2^c_0 + 2^c_1 + ... + 2^c_n With c_0 < c_1 < ... < c_n. coding == 0 represents c_n = BITS (uword). Unsigned integers i = 0 ... are represented as follows: 0 <= i < 2^c_0 (i << 1) | (1 << 0) binary: i 1 2^c_0 <= i < 2^c_0 + 2^c_1 (i << 2) | (1 << 1) binary: i 1 0 ... binary: i 0 ... 0 Smaller numbers use less bits. Coding is chosen so that encoding of given histogram of typical values gives smallest number of bits. The number and position of coding bits c_i are used to best fit the histogram of typical values. */ typedef struct { /* Smallest coding for given histogram of typical data. */ u32 coding; /* Number of data in histogram. */ u32 n_data; /* Number of codes (unique values) in histogram. */ u32 n_codes; /* Number of bits in smallest coding of data. */ u32 min_coding_bits; /* Average number of bits per code. */ f64 ave_coding_bits; } zvec_coding_info_t; /* Encode/decode data. */ uword zvec_encode (uword coding, uword data, uword * n_result_bits); uword zvec_decode (uword coding, uword zdata, uword * n_zdata_bits); format_function_t format_zvec_coding; typedef u32 zvec_histogram_count_t; #define zvec_coding_from_histogram(h,count_field,len,max_value_to_encode,zc) \ _zvec_coding_from_histogram ((h), (len), \ STRUCT_OFFSET_OF_VAR (h, count_field), \ sizeof (h[0]), \ max_value_to_encode, \ (zc)) uword _zvec_coding_from_histogram (void *_histogram, uword histogram_len, uword histogram_elt_count_offset, uword histogram_elt_bytes, uword max_value_to_encode, zvec_coding_info_t * coding_info_return); #define _(TYPE,IS_SIGNED) \ uword * zvec_encode_##TYPE (uword * zvec, uword * zvec_n_bits, uword coding, \ void * data, uword data_stride, uword n_data); _(u8, /* is_signed */ 0); _(u16, /* is_signed */ 0); _(u32, /* is_signed */ 0); _(u64, /* is_signed */ 0); _(i8, /* is_signed */ 1); _(i16, /* is_signed */ 1); _(i32, /* is_signed */ 1); _(i64, /* is_signed */ 1); #undef _ #define _(TYPE,IS_SIGNED) \ void zvec_decode_##TYPE (uword * zvec, \ uword * zvec_n_bits, \ uword coding, \ void * data, \ uword data_stride, \ uword n_data) _(u8, /* is_signed */ 0); _(u16, /* is_signed */ 0); _(u32, /* is_signed */ 0); _(u64, /* is_signed */ 0); _(i8, /* is_signed */ 1); _(i16, /* is_signed */ 1); _(i32, /* is_signed */ 1); _(i64, /* is_signed */ 1); #undef _ /* Signed <=> unsigned conversion. -1, -2, -3, ... => 1, 3, 5, ... odds 0, +1, +2, +3, ... => 0, 2, 4, 6, ... evens */ always_inline uword zvec_signed_to_unsigned (word s) { uword a = s < 0; s = 2 * s + a; return a ? -s : s; } always_inline word zvec_unsigned_to_signed (uword u) { uword a = u & 1; u >>= 1; return a ? -u : u; } #endif /* included_zvec_h */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */