summaryrefslogtreecommitdiffstats
path: root/src/vnet/ip
AgeCommit message (Collapse)AuthorFilesLines
2018-09-27IPIP and IPv6 fragmentationOle Troan5-286/+206
- Error where ICMPv6 error code doesn't reset VLIB_TX = -1 Leading to crash for ICMP generated on tunnelled packets - Missed setting VNET_BUFFER_F_LOCALLY_ORIGINATED, so IP in IPv6 packets never got fragmented. - Add support for fragmentation of buffer chains. - Remove support for inner fragmentation in frag code itself. Change-Id: If9a97301b7e35ca97ffa5c0fada2b9e7e7dbfb27 Signed-off-by: Ole Troan <ot@cisco.com>
2018-09-26mismatch bi0 and b0 when finalizing ip reassembly.Kingwel Xie2-0/+2
bi0 always points to the first buffer in chain but b0 could be any fragment in a ip packet. It causes a vnet_feature_next function call to the wrong buffer and crashes sometime when there is >1 feature nodes under ip-unicast. The fix is simple, makes b0 and bi0 both pointed to the first buffer Change-Id: I7de36e68fb42b050fa63201abd98aeb6ba2e0cd3 Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
2018-09-20Route counters in the stats segmentNeale Ranns2-50/+82
route ADD API changed to return the stats segment index to use to read the counters Change-Id: I2ef41e01eaa2f9cfaa49d9c88968897793825925 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-14vlib: introduce user flags in vlib_frame_tDamjan Marion2-3/+3
Those flags have local significance and they can be used for sending hints to the next node. Change-Id: Ic2596ee81c64cd16f96344365370e8fcdc465354 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-09-13IP-neighbor: add and delete internal APINeale Ranns6-58/+118
Change-Id: I4d1ab5ff0c8f0756e91bf63e045f88513bb7d039 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-09-11indent off in ip_lookup_set_buffer_fib_indexNeale Ranns1-4/+5
when the name of the structure crosses a line boundary it's painful to parse... Change-Id: I5d0606900802fb8d64a065f31f3e2a53bd8a5f40 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-11GBP Endpoint UpdatesNeale Ranns1-0/+7
- common types on the API - endpoints keyed in various ways for DP lookup - conparison functions for VPP IP address types Change-Id: If7ec0bbc5cea71fd0983fe78987d147ec1bd7ec8 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-09-08L2 BVI/FIB: Update L2 FIB table when BVI's MAC changesNeale Ranns1-0/+1
also some moving of l2 headers to reduce dependencies Change-Id: I7a700a411a91451ef13fd65f9c90de2432b793bb Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-07IP route update fix when multipath and drop setNeale Ranns1-20/+14
Change-Id: I9cec7486cb6e3c5261d74d2b15a4d19469285a30 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-08-31IPx address query functions take a const pointerNeale Ranns2-34/+33
Change-Id: I45b0c48e89cb1ea556c795f6163a8346f2e2e0da Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-08-31Introduce a mac_address_t on the API and in VPPNeale Ranns1-0/+1
Change-Id: I05d6c2cb5d34de469eb050e4ee10dc6b954c986d Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-08-30Refactor the ARP throttle into a common type so it can be reusedNeale Ranns3-33/+8
Change-Id: Ic7f7af983d5b6d756748023aa0c650f53e9285cf Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-08-29Consolidate table->index conversion in fib-path CLI processingNeale Ranns1-16/+0
Change-Id: I221cebddc45efbfdec428b7df2af96e2aedff2dd Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-08-23ip4: rework rewrite node to use vlib_buffer_enqueue_to_next()Damjan Marion1-355/+270
- perf improvement is around 3 clock per packet - it properly prefetches ip header and rewrite area Credits to zhiyong.yang@intel.com for spotting that in some cases rewrite area is not prefetched. Change-Id: Ie02913de7bd7f42b7df2617fb5fa87c74ab53c23 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-17VPP-1392: VXLAN fails with IP fragmentationOle Troan4-2/+6
Not only is it wasteful to send all fragments back through ip4-lookup, but it doesn't work with tunnel mechanisms that don't have IP enabled on their payload side. Change-Id: Ic92d95982dddaa70969a2a6ea2f98edec7614425 Signed-off-by: Ole Troan <ot@cisco.com>
2018-08-15Remove client_index field from replies in APIOndrej Fabry1-5/+0
- replies should not need to contain client_index since it is used to identify sender of requests to VPP Change-Id: Iece3853b3f020054ee1652b149d0cf8d9580db4e Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-08-14Fix context field position in API definitionOndrej Fabry1-1/+1
- context should be first field for reply messages, just like it is for all other 545 replies Change-Id: Ib291036d3389dbc26c8e9194966d01cab81534aa Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-08-14neighbor advertisement must with target_link optionahdj0071-0/+2
Change-Id: Ic20eea8f2fd19dd3c1728a1f7c622ef0c9728f81 Signed-off-by: ahdj007 <dong.juan1@zte.com.cn>
2018-08-13Multiarch for ip4 forwarding nodesDamjan Marion1-59/+49
Change-Id: I68b55fc641da9dacc3343628b3e0cf77d3533313 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-13Multiarch handling in different constructor macrosDamjan Marion1-4/+2
This significantly reduces need for ... in multiarch code. Simply constructor macros will jost create static unused entry if CLIB_MARCH_VARIANT is defined and that will be optimized out by compiler. Change-Id: I17d1c4ac0c903adcfadaa4a07de1b854c7ab14ac Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-10IP fragmentation buffer chains, part 2.Ole Troan1-19/+21
Change-Id: I8d1072cf9ff9f502302fd906c5590e0f3698dc60 Signed-off-by: Ole Troan <ot@cisco.com>
2018-08-10IP fragmentation to handle buffer chains.Ole Troan1-79/+106
Change-Id: Iff557f566ebc9ab170d75da1233997d83b8c8a66 Signed-off-by: Ole Troan <ot@cisco.com>
2018-08-10VPP-1382: Fix ip6 address cann't display completely when show ip6 neighborsshubing guo1-2/+2
Change-Id: Iadfbe3c0d0c6dcec2b4ccf1695bd234358f6969a Signed-off-by: shubing guo <guo.shubing@zte.com.cn>
2018-08-10Use IP address types on UDP encap APINeale Ranns5-39/+142
Change-Id: I3c714c519b6d0009329b50947ce250c18ee2a85a Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-08-09Thread-safe ARP / ND throttlingDave Barach6-75/+103
Change-Id: I810d834c407bd404d5f0544cdec0674f0bb92d31 Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: Dave Barach <dbarach@cisco.com>
2018-08-03Documentation fix on "set interface ip[6] table"Yichen Wang1-2/+2
Change-Id: I8dc6230b65e57ddc07f974bf6726393d8dbfd4a2 Signed-off-by: Yichen Wang <yicwang@cisco.com>
2018-07-30FIB: return entry prefix by const reference to avoid the copyNeale Ranns1-10/+10
Change-Id: I09b8406168df4b6b28df3ede24ee839681be0195 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-30Reverse the logic of flagging malformed packet in fragmentation code to ↵Rajesh Saluja1-1/+1
allow padding Change-Id: I051c137ae18fd436a798a12a56a9d12f8eaa2e08 Signed-off-by: Rajesh Saluja <rajsaluj@cisco.com>
2018-07-27Fix memory leak in processing of ICMPv6 RA event (VPP-1360)Juraj Sloboda1-1/+2
Change-Id: I7c3e5e91391b1c9b36e8ea8bacee9a107da1ae96 Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2018-07-23fix vector index range checksEyal Bari1-1/+1
Change-Id: I63c36644c9d93f2c3ec6606ca0205b407499de4e Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-07-21fix IP directed broadcast node declarationsMatthew Smith2-2/+2
The dev build ('make build') was failing because ip4_rewrite_bcast() and ip6_rewrite_bcast() are declared static and were not referenced. The node functions that were set for directed broadcast rewrite: ip4_rewrite_bcast_node - ip4_rewrite() ip6_rewrite_bcast_node - ip6_rewrite() Changed to: ip4_rewrite_bcast_node - ip4_rewrite_bcast() ip6_rewrite_bcast_node - ip6_rewrite_bcast() The release build ('make build-release') succeeds because there is a VLIB_NODE_FUNCTION_MULTIARCH() call referencing the function. That macro is empty for dev builds. Change-Id: I2a05f00ca43d0eae8ff2e3026991e69917003fe1 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-07-20IP directed broadcastNeale Ranns4-13/+130
with ip direct broadcast enable a packet to the interface's subnet broadcast address with be sent L2 broadcast on the interface. dissabled, it will be dropped. it is disabled by default, which preserves current behaviour Change-Id: If154cb92e64834e97a541b32624354348a0eafb3 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-19Remove unused argument to vlib_feature_nextDamjan Marion4-18/+6
Change-Id: Ieb8b53977fc8484c19780941e232ee072b667de3 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-19ip4-input and ip4-input-no-checksum should be siblingsNeale Ranns1-11/+1
each edge/arc from these nodes must be the same. Change-Id: Id5dace61bca0af71ad1df98583425226e81fd0de Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-18Add config option to use dlmalloc instead of mheapDave Barach1-0/+4
Configure w/ --enable-dlmalloc, see .../build-data/platforms/vpp.mk src/vppinfra/dlmalloc.[ch] are slightly modified versions of the well-known Doug Lea malloc. Main advantage: dlmalloc mspaces have no inherent size limit. Change-Id: I19b3f43f3c65bcfb82c1a265a97922d01912446e Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-14Improve IP4 ARP and IP6 ND Events Notificationv18.10-rc0John Lo1-1/+7
For L2 ARP termination, use both brodcast ARP request and reply packets to provide MAC/IP binding events. For IP4/IP6 neighbor adress resolution, send resolution events if there is an address resolution attemp with a static neighbor entry where both IP and MAC matches. This allow probe of an IP neighbor with a static entry to confirm it is responding with a reply matching that of the static entry. Change-Id: Iffb923bb5aea3f9021436735d5ca06e7b24f966f Signed-off-by: John Lo <loj@cisco.com>
2018-07-11avoid using thread local storage for thread indexDamjan Marion7-20/+21
It is cheaper to get thread index from vlib_main_t if available... Change-Id: I4582e160d06d9d7fccdc54271912f0635da79b50 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-09IGMP improvementsNeale Ranns6-18/+234
- Enable/Disable an interface for IGMP - improve logging - refactor common code - no orphaned timers - IGMP state changes in main thread only - Large groups split over multiple state-change reports - SSM range configuration API. - more tests Change-Id: If5674f1044e7e97274a711f47807c9ba689d7b9a Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-07PipesNeale Ranns1-0/+1
A pipe resembles a unix pipe. Each end of the pipe is a full VPP interface. pipes can be used for e.g. packet recirculation, inter-BD, etc. Change-Id: I185bb9fb43dd233ff45da63ac1b85ae2e1ceca16 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-02Fixing ip4-reassembly ip6-reassembly non feature node, next_node_index settingVijayabhaskar Katamreddy2-1/+2
Change-Id: Ib988d87e6758ffa31862096391f9f286b0797f2b Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
2018-06-29Removing the static keyword do_fragment routines, so that could be accessed ↵Vijayabhaskar Katamreddy2-3/+8
outside the ip_frag nodes Change-Id: I46d3d10fa763fcf7a579620ec7cf1b204a53bce8 Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
2018-06-29IP4 Router Alert option handling for IGMPNeale Ranns4-14/+156
and a new ip4-options node, inserted between ip4-input and ip4-punt, that checks for IP-router-alert option + IGMP combination and sends the packet to the ip4-local. This is required because some IGMP packets are sent to the group address and not the all-routers address. All IGMP packets are sent with the router alert option. Change-Id: I01f478d4d98ac9f806e0bcba0f6da6e4e7d26e2a Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-06-28reassembly: optimize bihash usageKlement Sekera2-45/+38
Change-Id: I19690db9996ecb8c5e86415d2fd3c7133ce698f8 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-06-28ip: vectorized ip checksumDamjan Marion2-69/+119
Change-Id: Ida678e6f31daa8decb18189da712a350336326e2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-06-26Fix assert issue in ip_csum_add_even()Hongjun Ni1-1/+2
ASSERT (ip_csum_with_carry (d, x) == c) will raise assert if d equals to zero while x not equals to zero. Change-Id: Ia9ccdbf801ae565eaadd49f04569d13bfc31cba8 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2018-06-26node functions cannot be always_inlineDamjan Marion4-6/+6
Thanks to gcc-8 for highlighting this... Change-Id: I53bfab631a40fd1b680c76a48b0307a33fa2b154 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-06-20Fix sw-if-index display error.Brant Lin1-2/+2
If the sw-if-index is set to -1, it will send out all interfaces' arp enties. In this case, the sw-if-index is always set to -1. It is not correct. Change-Id: I21e9ee078c757ac7efa70a2a1f1a7a4eb73d66a1 Signed-off-by: Brant Lin <brant.lin@ericsson.com>
2018-06-19Check get packet template allocation failure (VPP-1321)John Lo3-0/+12
After calling vlib_packet_template_get_packet(), make sure packet buffer is allocated before using it. Change-Id: Idb5199f4e2c9596137b2101e502d611f474a6ffe Signed-off-by: John Lo <loj@cisco.com>
2018-06-19ip checksum multiarch support, cleanupDave Barach2-109/+91
When computing tcp/udp checksums across large amounts of data - e.g. when NIC h/w checksum offload is not available - it's worth providing arch-dependent code; if only to compile the code w/ -O3. Fix calculation when data is fully unaligned / on an odd byte boundary. Add a buffer alignment test vector. Change-Id: I7644e2276ac6cbc3f575bf61746a6ffedbbb6150 Signed-off-by: Dave Barach <dave@barachs.net>
2018-06-14Use unicast DMAC for IP neighbor pool refresh probesJohn Lo7-15/+28
Change-Id: I12fbebd1d24c37dc77c147773ea522c8a4b7b99d Signed-off-by: John Lo <loj@cisco.com>