aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2018-05-10vppinfra: use count_trailing_zeros in sparse_vec_indexDamjan Marion8-84/+46
It is much cheaper to use ctzll than to do shift,subtract and mask in likely case when we are looking for 1st set bit in the uword. Change-Id: I31954081571978878c7098bafad0c85a91755fa2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-10NAT44: sessions counters per user fix (VPP-1270)Matus Fabian1-6/+6
Change-Id: I6306b81e0e1c3e1c591f929a76bb265c1c1d0859 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2018-05-10vnet: device flow offload infraDamjan Marion18-0/+1335
Change-Id: Ibea4a96bdec5e368301a03d8b11a0712fa0265e0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-10session: fix proxy app multithreadingFlorin Coras1-15/+50
Change-Id: Ic5304749935f69018eb00183bb4670bb9f16273c Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-10Change the way IP header pointer is calculated in esp_decrypt nodesSzymon Sliwa3-4/+18
The pointer to IP header was derived from l3_hdr_offset, which would be ok, if l3_hdr_offset was valid. But it does not have to be, so it was a bad solution. Now the previous nodes mark whether it is a IPv6 or IPv4 packet tyle, and in esp_decrypt we count get ip header pointer by substracting the size of the ip header from the pointer to esp header (which lies in front of the ip header). Change-Id: I6d425b90931053711e8ce9126811b77ae6002a16 Signed-off-by: Szymon Sliwa <szs@semihalf.com>
2018-05-10DHCP4 client process replies when renewing leaseMatthew Smith1-16/+24
When a DHCP client is in the bound state, it wakes up halfway through it's lease (by default) to try and renew the lease. The ip4-dhcp-client-detect is not enabled as a feature at this point, so replies sent from the DHCP server do not get applied to the lease. Eventually the lease expires, the address is removed from the interface, a new discovery is performed and the same address is added back to the interface. Before sending a request to renew in the bound state, enable the feature to process the reply. Change-Id: I95332ee0596f47df6f3c8bf8e3f0698dde9a1fc5 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-05-10vppinfra: use popcnt instruction when availableDamjan Marion1-0/+8
Change-Id: Id02d613b8613a2d448840fe2d6a5e3b168a3c563 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-10tcp: fix jumbo retransmitsFlorin Coras1-42/+42
Change-Id: I1c8a14d4d51aa730f0edcf491e3c4725e2d8bd66 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-10dpdk:fix tx countEyal Bari1-1/+2
Change-Id: I921465ea64b59d42674cc8f19069ed04e3b25026 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-05-09dpdk: fix free of tx dropped packetsFlorin Coras1-1/+1
Change-Id: I3669068f694614f8555b33bf0b703c41e45363ef Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-09ipsec: support UDP encap/decap for NAT traversalKlement Sekera9-33/+90
Change-Id: I65c12617ad49e4d5ef242e53988782f0cefa5684 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-05-09session: cleanup session tx functionFlorin Coras9-376/+532
- rework the function to declutter and avoid building more than one tx frame - add dual loop although benefits in my tests seem to be minimal - improve tcp/udp echo external apps. They have slightly better throughput than internal echo apps. - udp bugfixes Change-Id: Iea4a245b1b1bb407a7f403dedcce2664a49f774b Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-09dpdk: tx code reworkDamjan Marion4-261/+170
Change-Id: Ifea9c772e8784642433b92091f5769eb9ec06890 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-09dpdk:fix mbuf index typo'sEyal Bari1-4/+4
Change-Id: I387b22427b3f322969bcf32fcfc189123c8ed6ae Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-05-08NAT44: TCP connection close detection (VPP-1266)Matus Fabian7-13/+131
Change-Id: Iba1cc1179ee80478e29888790a6476571d1904dc Signed-off-by: Matus Fabian <matfabia@cisco.com>
2018-05-07dpdk: improve perf of buffer indices calc in the input nodeDamjan Marion1-34/+53
Change-Id: I16557189aa4a763ec496cb4a45f6e12f2d46971f Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-07fix: AttributeError: module 'os' has no attribute 'cwd'Andrey "Zed" Zaikin1-1/+1
Change-Id: I1c49a12ef7fa7bd0046f1a420b01c1654b6d21ec Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
2018-05-07BFD: Fix format_ip46_address() parameter ordering.Jon Loeliger1-1/+1
Change-Id: I2b50e3fc06b4e905395d4706083f12ebc76826ce Signed-off-by: Jon Loeliger <jdl@netgate.com>
2018-05-07vxlan:vxlan.c conform coding styleEyal Bari1-354/+374
Change-Id: I9937912cd760698e39044e8ae022a90b58c8db30 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-05-05autodetect alignment during _vec_resizeDamjan Marion5-8/+12
Change-Id: I2896dbde78b5d58dc706756f4c76632c303557ae Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-04ipsec: allow null/null for crypto/integ algorithms pairRadu Nicolau4-7/+8
Change-Id: Ic1e189c22e3d344d165e0eab05ccb667eef088a9 Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
2018-05-04Flow: Rename IPFIX exporter.Ole Troan16-25/+25
Change-Id: I9363cf54b73f7cfd8622af6f1cb250438ea0d3b6 Signed-off-by: Ole Troan <ot@cisco.com>
2018-05-04Harmonize vec/pool_get_aligned object sizes and alignment requestsDave Barach49-15/+185
Object sizes must evenly divide alignment requests, or vice versa. Otherwise, only the first object will be aligned as requested. Three choices: add CLIB_CACHE_LINE_ALIGN_MARK(align_me) at the end of structures, manually pad to an even divisor or multiple of the alignment request, or use plain vectors/pools. static assert for enforcement. Change-Id: I41aa6ff1a58267301d32aaf4b9cd24678ac1c147 Signed-off-by: Dave Barach <dbarach@cisco.com>
2018-05-04arm64: Avoid setting march to corei7 when Cross Compiling for ARMSachin Saxena1-3/+3
When Cross-compiling VPP for arm64 target and build machine is x86_64, based on build_cpu value, the march variable is set to corei7 which is an unrecoganized option for ARM tool chain. This breaks the VPP compilation. Change-Id: I4cba5b4990e7cf0bdc1403e90c3d18110900bbef Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
2018-05-04Address compilation issues with Java > 1.8Marco Varlese1-8/+3
This patch addresses the changes in the JDK to build headers (javah no longer available) Change-Id: I3e94b1cf97c8c474535c26b75ea08379338fe0af Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2018-05-04Fix format for the dst address in the STN traceMilan Lenco1-2/+2
Output string 's' was not assigned the return value of format() for the destination address, which, in case the underlying memory was moved by the realloc, resulted in an invalid memory access by the subsequent invocations of format(). Change-Id: I2b5dfd85db085c553ca5ec0b3257aeeb437c360a Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2018-05-04VAPI: support VLAs in type definitionsKlement Sekera3-59/+57
Change-Id: I8d54415972d6644190857175b0e895c5319ce7b6 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-05-03NAT: fix bin API dump of static mappings.Milan Lenco1-2/+5
Static mappings with equal local and external IPs but different ports were dumped as identity mappings. Change-Id: Ifea7cef5b78aea4c2eb31cf1620185eeef2681e5 Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2018-05-03MPLS prefetch fixesNeale Ranns2-15/+15
Change-Id: I565d79af410825c72f291ab40178883b1bc6f1df Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-05-03NAT44: fix VAT nat44_user_session_detailsMatus Fabian1-4/+5
Change-Id: If379247f0574fbfcca39e752684bf6c81b95187b Signed-off-by: Matus Fabian <matfabia@cisco.com>
2018-05-03NAT44 segv on unknown proto on inside interfaceMatthew Smith1-22/+25
When a packet with an unknown proto arrives on an inside interface and there are no existing sessions for the source address, a segv occurs. snat_in2out_unknown_proto() finds the head of the sessions dlist, fetches the address of the next element using head->next, and then dereferences the next element. On the first packet received from a source address, head->next is ~0, so this results in a segv. Check that the session list is not empty before trying to traverse it. Also removed unnecessary lookup against tsm->user_hash. Prior call to nat_user_get_or_create() already performed that lookup and added a user if one didn't exist. Change-Id: If73e79aa2f8e3962ab7b876ecf55aea40d7a5472 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-05-03tcp: fix echo server rx retries counter vec allocFlorin Coras1-0/+2
If sessions are not preallocated, the rx retries counters are not correctly validated/initialized Change-Id: Iaf7456f3a0e2181fcea0c370613d694f8e98276d Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-02Fix CentOS 7 build issue with vxlanMatthew Smith1-2/+4
Two vxlan union/struct initializations caused gcc on CentOS 7 to puke. Modified them to make the build work again. Change-Id: Iad667444b86cfde5ee4329993b520028d3b593ad Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-05-02vxlan:encap - use vnet rewriteeyal bari3-53/+50
moving the rewrite into the tunnel struct Change-Id: Iec74b48e13456d32957e826cffb5ea35a8ebd1a0 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-04-30tcp/session: debug improvements/fixesFlorin Coras6-30/+25
Change-Id: I906e58b4f9827a79a6ab673f8fa2e03036c69820 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-04-30Remove historical README fileDave Barach1-43/+0
Change-Id: I54a00686a7f3a61f583a5f701a0ab6c5480a455b Signed-off-by: Dave Barach <dave@barachs.net>
2018-04-30FIB: elide cover walk for insert of host routeNeale Ranns3-3/+25
Change-Id: I2d39e56ff605e3a24927d6330d65d0406f588381 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-04-30plugins: dpdk: fix check which makes not sense, likely a typoSzymon Sliwa1-1/+1
Change-Id: If33854f9c32736edf571fb66cdfa759db1c9de25 Signed-off-by: Szymon Sliwa <szs@semihalf.com>
2018-04-27svm/session: improve svm fifo allocationFlorin Coras1-13/+15
Change-Id: Id9bad9a2fd99d22296a705ab08d1daedc3fef5c1 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-04-27IPv6 NS/RS; do not vec_validate global structs in the DPNeale Ranns1-12/+16
Change-Id: I5cab31639e7819c9ab7e9c9159d931b25161d00b Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-04-27IPv6 NS: use the mcast rewrite node to fill in the destination MACNeale Ranns2-263/+275
- move the IPv6 incomplete and glean node to ip6_neighbour.c (so it has access to ip6_neighbour_main_t) - use the RA info config on the interface to find the multicast adj to use Change-Id: I835e419072abe54fb09dafb0e7eb0a9e50eba1af Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-04-27TAP memory leaks:Neale Ranns4-28/+22
1 - use bit-map to re-use ID values and thus VLIB nodes 2 - free vrings 3 - free hw_address on HW interface delete (a HW * struct is memset on pool_get) 4 - free temporary node names during TX node setup Change-Id: Id114c8bb9c844fd4ceb02fbbeb4b511ecfeb61ce Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-04-27Move VOM to extras/vomDamjan Marion177-32373/+1
Change-Id: Iea174f03dfba3bd06024db0f0cc373532300dcae Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-04-27A bit of buffer metadata reshuffling to accommodate flow_idDamjan Marion10-44/+37
Change-Id: I2794384557c6272fe217269b14a9db09eda19220 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-04-27VAT for qos_record_enable_disable APIIgor Mikhailov (imichail)2-3/+90
Change-Id: I2b418b9aefe298e4e6190cbe2e220a657f688cda Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
2018-04-26vlib: set log tap level <level> does not work for some keywordsSteven1-2/+2
While some levels such as debug and emerg work, others don't. See below. DBGvpp# set log class tap level warn set log class tap level warn set logging class: unknown input `level warn' DBGvpp# set log class tap level debug set log class tap level debug DBGvpp# set log class tap level info set log class tap level info set logging class: unknown input `level info' DBGvpp# set log class tap level err set log class tap level err DBGvpp# set log class tap level crit set log class tap level crit set logging class: unknown input `level crit' DBGvpp# set log class tap level emerg set log class tap level emerg DBGvpp# Cause: The reason for the failure for the shorter keywords is level_str is unformatted with %v which is not null terminated. For example, the character after "info" could be anything in level_str. The memcmp with size of the macro keyword __##uc which includes the null character or 5 in this case and thus the comparison fails. Fix: Use %s which insure level_str is null terminated. Use strcmp to rule out false positve match like "debugxxx" against keyword "debug". Change-Id: I7a2d97a0f7f618df105da7eca791618dce04d21e Signed-off-by: Steven <sluong@cisco.com>
2018-04-26NAT44: disable nat44-hairpinning feature for in-out interface (VPP-1255)Matus Fabian1-10/+20
Change-Id: Icd42abf4e35db550df496592cffce655f1987d68 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2018-04-25igmp: disable debug messagesDamjan Marion1-1/+1
Be gentle with people who run VPP in the noisy envirement where not-for-us IGMP messages are flying around... Change-Id: I07e74e29bc12ecdcc83faead9182d861c7ea1add Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-04-25Carry recorded QOS bits in the outer VXLAN IP headerIgor Mikhailov (imichail)1-0/+35
Currently for VXLAN IPv4. Change-Id: Id4b8bc0d9f6ab043810e4d1b9f28e01c27ce0660 Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
2018-04-25span: crash in span_mirror [VPP-1254]Steven1-2/+7
It is possible for span-input to get call with sw_if_index which is greater than sm->interfaces and crashes in span_mirror () in the following line span_interface_t *si0 = vec_elt_at_index (sm->interfaces, sw_if_index0); For example, span-input mirrors a main interface as source, it may actually get call for traffic coming in from the subinterface and crashes. The fix is simply to check if sw_if_index >= vec_len (sm->interfaces) and punt if it is. Change-Id: I8312eb321d638518e14ba2326fffd1a7919646ca Signed-off-by: Steven <sluong@cisco.com> (cherry picked from commit 516d63ff2c6671f3b0dc641511a50017a9804179)