summaryrefslogtreecommitdiffstats
path: root/src/vnet/geneve/encap.c
AgeCommit message (Collapse)AuthorFilesLines
2019-12-20vxlan: reuse inner packet flow hash for tunnel outer header load balanceShawn Ji1-0/+8
Type: fix Several tunnels encapsulation use udp as outer header and udp src port is set by inner header flow hash, such as gtpu, geneve, vxlan, vxlan-gbd Since flow hash of inner header is already been calculated, keeping it to vnet_buffere[b]->ip.flow_hash should save load-balance node work to select ECMP uplinks. Change-Id: I0e4e2b27178f4fcc5785e221d6d1f3e8747d0d59 Signed-off-by: Shawn Ji <xiaji@tethrnet.com>
2019-05-27geneve: encap performance enhancementZhiyong Yang1-58/+53
This patch can help save 2.7 clocks/pkt from 51.5 to 48.5 clocks/pkt on Skylake server. Change-Id: I10173c8a147a0e54f925c7841c26f133eb75cbed Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
2019-03-06geneve: migrate old MULTIARCH macros to VLIB_NODE_FNFilip Tehlar1-31/+6
Change-Id: Ie7b201b2742e0051b249acc011f609905bc178c8 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2018-09-07geneve: fix variable initial valueZhiyong Yang1-1/+1
It is not good enough to initialize sw_if_index0 = 0, sw_if_index1 = 0, as it maybe causes the first two incoming packets to miss necessary computation. Change-Id: Ifcab408d9514820e0daa280f4c73956db13b59be Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
2018-07-11avoid using thread local storage for thread indexDamjan Marion1-1/+1
It is cheaper to get thread index from vlib_main_t if available... Change-Id: I4582e160d06d9d7fccdc54271912f0635da79b50 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-11-27Address COVERITY warningsMarco Varlese1-0/+6
Among many false positives the potential NULL pointer dereference seems to be a valid one hence addressing that with this patch. Change-Id: Ia55784475294e96f60df64baf8820b459bb85bb7 Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-10-06Initial GENEVE TUNNEL implementation and tests.Marco Varlese1-0/+594
Notes on this first implementation: * First version of the implementation does NOT support GENEVE OPTIONS HEADER: it isn't well understood what the purpose of the OPTIONS will be and/or what content would be placed in the variable option data; Once the IETF work will evolve and further information will be available it could be possible to modify the frame rewrite to contemplate the actual GENEVE OPTIONS. Change-Id: Iddfe6f408cc45bb0800f00ce6a3e302e48a4ed52 Signed-off-by: Marco Varlese <marco.varlese@suse.com>