summaryrefslogtreecommitdiffstats
path: root/src/vnet/cop
AgeCommit message (Expand)AuthorFilesLines
2020-02-10misc: add FEATURE.yaml filesDave Barach1-0/+11
2019-12-10api: multiple connections per processDave Barach1-1/+1
2019-09-19cop: API cleanupJakub Grajciar1-9/+10
2019-08-29ip: remove unused function parameterSimon Zhang1-4/+3
2019-05-16init / exit function orderingDave Barach1-33/+30
2019-04-08fixing typosJim Thompson1-1/+1
2019-03-06cop: migrate old MULTIARCH macros to VLIB_NODE_FNFilip Tehlar3-21/+3
2018-10-23c11 safe string handling supportDave Barach1-1/+1
2018-01-23VPPAPIGEN: vppapigen replacement in Python PLY.Ole Troan1-1/+1
2017-10-24Add extern to *_main global variable declarations in header files.Dave Wallace1-1/+1
2017-10-09vppapigen: support per-file (major,minor,patch) version stampsDave Barach1-0/+2
2017-04-25"autoreply" flag: autogenerate standard xxx_reply_t messagesDave Barach1-25/+3
2017-04-06Use thread local storage for thread indexDamjan Marion2-8/+8
2017-04-01MTRIE Optimisations 2Neale Ranns1-9/+0
2017-03-29Mtrie optimisationsNeale Ranns1-12/+3
2017-01-27API refactoring : copPavel Kotucek2-0/+229
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion5-0/+1449
m"> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __included_lb_hash_hash_h__ #define __included_lb_hash_hash_h__ #include <vppinfra/crc32.h> #include <vppinfra/xxhash.h> #if defined(clib_crc32c_uses_intrinsics) && !defined (__i386__) static_always_inline u32 lb_hash_hash (u64 k0, u64 k1, u64 k2, u64 k3, u64 k4) { u64 val = 0; val = crc32_u64 (val, k0); val = crc32_u64 (val, k1); val = crc32_u64 (val, k2); val = crc32_u64 (val, k3); val = crc32_u64 (val, k4); return (u32) val; } /* Note: k0 is u64 and k1 is u32 */ static_always_inline u32 lb_hash_hash_2_tuples (u64 k0, u32 k1) { u64 val = 0; val = crc32_u64 (val, k0); val = crc32_u32 (val, k1); return (u32) val; } #else static_always_inline u32 lb_hash_hash (u64 k0, u64 k1, u64 k2, u64 k3, u64 k4) { u64 tmp = k0 ^ k1 ^ k2 ^ k3 ^ k4; return (u32) clib_xxhash (tmp); } /* Note: k0 is u64 and k1 is u32 */ static_always_inline u32 lb_hash_hash_2_tuples (u64 k0, u32 k1) { u64 tmp = k0 ^ k1; return (u32) clib_xxhash (tmp); } #endif #endif /* __included_lb_hash_hash_h__ */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */