summaryrefslogtreecommitdiffstats
path: root/vnet/vnet/ip
AgeCommit message (Collapse)AuthorFilesLines
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion61-31301/+0
Change-Id: I7b51f88292e057c6443b12224486f2d0c9f8ae23 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-20Decouple dependencies/assumptions in MAC changeNeale Ranns1-1/+1
Change-Id: Ic38d0e468da1ad5b56eefda471a5961146a1c372 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-14Ping response in a VRF context uses correct FIB for responseNeale Ranns1-0/+7
Change-Id: I3b626a1fb9d74ebc609ded14c16c5e3d5a1655ab Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-14IP and MPLS route debug CLI fixesNeale Ranns1-0/+9
Change-Id: I1b61f36c88308c1bcf9a61a87843d1fea457d8fe Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-12ip4: perf optimization in the ip4-input nodeDamjan Marion2-83/+76
Change-Id: I9ddbbf8ce0d7307b9eb82ccd0c51f84e479ffd23 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-09ip4: perf optimization in the ip4-rewrite nodeDamjan Marion1-13/+6
This change shows around 7% improvement in ip4 path when ip4-output features are not used. Change-Id: I81c1c4c38c99fff0ad8270d3c0df907acf1d8c58 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-09Coding standards cleanup for vnet/vnet/ip, VPP-255Dave Barach52-7808/+9133
Change-Id: I12892fa571cc50e0541d6463a8b68e1b618edd9f Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-09VPP-547: Fix for co-existence of HbH and RH header in Segment routing:Shwetha2-26/+155
1. sr-rewrite - SR insertion in v6 : SR RH is inserted immediately after v6 header but if hbh header is present as per RFC2460 it should immediately follow v6 header. This is fixed. 2. sr-local : v6 packet destined to a sr segment is received if hbh is present it is not handed over to sr-local for processing. fixed ip6-local handling to skip hbh as there is no register handler for hbh for now. 3. sr-replicate - update in dual of sr_rewrite to handle replicate, fixes in sr-replicate to handle presence of hbh header Change-Id: I034523a42d2fedf97134761f956ab534babb8b36 Signed-off-by: Shwetha <shwethab@cisco.com>
2016-12-09VPP-470: Introduce VxLAN-GPE as transport for iOAM.Vengada Govindan1-5/+2
See Jira ticket for more details - New plugins created to (a) Add VxLAN-GPE as transport (b) Provide export infra for VxLAN-GPE. Change-Id: Ife50c7434f53d17a4783062310f73d063d53494c Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-12-08BFD: improve ip header handling, fix assertKlement Sekera1-3/+3
Instead of storing a pointer, store an offset within vlib_buffer marking the start of the ip header (similar to storing start of ethernet header). Handle negative timeout in the bfd process main loop. Change-Id: I05a1ff3ac41da5bdc3b2ac6f9e03b3241994688b Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-07BFD: basic asynchronous session up/downKlement Sekera2-4/+10
This is a work-in-progress basic BFD session handling. Only asynchronous mode is supported at the moment. Setting the session flags doesn't work. Change-Id: Idba27f721b5c35be5a66a6d202a63d23ff7ecf6f Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-07Prevent re-entrant walks on an adjacency.Neale Ranns2-7/+24
The re-entrant walks were caused when the walk from an IP adj updated a fib_netry with an MPLS adj which in turn triggers a walk of the IP adj. Re-entrant walks do unnecessary work. also fixed a walk merge issue where the encountered walk should only be checked for equivalence woth the most recent alk, not any in the list. Otherwise an UO,DOWN,UP beceoms (2*)UP,DOWN Change-Id: Ib8b27f055dc6c1366d33740276d1c26cd314220a Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-06Refactor binary APIs for IP, VPP-549Dave Barach2-0/+1634
Change-Id: Ieff6b22e2432600a231f74e75716e000d488a78f Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-06api: missing support for dumping of neighbours (VPP-333)Pavel Kotucek2-24/+65
added API to dump ipv4/ipv6 neighboors (added by ip_neighbor_add_del). Change-Id: I33209a3d06beba64d68465c0892a9f4c65657334 Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-12-05Locally generated packet go through lookup/load-balance - locally-generated ↵Neale Ranns8-259/+203
is an attribute of the packet and checked where necessary Add a flag to the vnet_buffer to indicate a packet is locally originated. Then in the rewrite nodes we can check this flag and not perform the TTL decrement. The switch path cost is expected to be fractions of a clock - the flags will be hot in the cache. The cehcks are necessary to due the requirements that VPP must be able to emit an IP packet with TTL=255. Change-Id: Ieb9cf06e34df54fd5c950293de8b665016295c51 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-05Fix ICMP echo reply punt pathAlexander Popovsky2-21/+48
Add ICMP echo reply punt logic in ip[46]-icmp-echo-reply (ping) nodes. ICMP echo reply packets corresponding to the locally (VPP) originated ICMP echo requests are still dropped as before. Rest of the (unknown) ICMP echo reply packets are pushed to the “error-punt” node. Also added ICMP echo packet (id/seq) trace information Change-Id: I998198430dedc9b4d771b6aff2a97f18598663f9 Signed-off-by: Alexander Popovsky <apopovsk@cisco.com>
2016-12-02MPLS infrastructure improvmentsNeale Ranns4-17/+17
- deprecate MPLSoEth and MPLSoGRE; replace with generic MPLS tunnel. - deprecates CLI 'mpls encap ..'; replace with addition of MPLS out label to a route/tunnel. - support for MPLS 'routes', e.g. MPLS x-connects. - deprecates CLI 'mpls decap ..'; replace with 'mpls route .. ' Change-Id: Ibda46544912f880d0200f22bf9ff9b52828fcc2f Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-01Add vxlan-bypass feature to IP4 forwarding pathJohn Lo2-2/+18
Added vxlan-bypass feature which can be enabled on the underlay interface which receive VXLAN packets to accelerate VXLAN decap processing. The CLI to enable it is: set interface ip vxlan-bypass <interface> [del] With this feature enabled on an interface, there is an overhead for non-VXLAN packets at about 13 clocks per packet. The API is created to support vxlan-bypass for both VXLANoIPv4 and VXLANoIPv6. With this change, vxlan-bypass is only implemented for IPv4 forwarding path. Change-Id: Ica7239f642010b231eade7fd5009aa4b42c119d3 Signed-off-by: John Lo <loj@cisco.com>
2016-11-30VXLAN multicast dst (remote) address supportEyal Bari2-0/+30
Added support for multicast vxlan tunnels which are used for bridge domain flooding instead of flooding the all unicast tunnels in the bridge domain. features added: * conditional flooding to some of the BD members - based on existance of multicast tunnel member * added local multicast adjacency - multicast packets are handled as the same as unicast - based on src (unicast) address * refactored some of vxlan tunnel creation code - to unify ip4/6 handling Change-Id: I60cca4124265a8dd4f6b2d6ea8701e52e7c1baa4 Signed-off-by: Eyal Bari <ebari@cisco.com>
2016-11-23dpdk: remove rte_mbuf modifications at many places in the codeDamjan Marion3-77/+0
It is sole responsibility of dpdk tx function to fill/update rte_mbuf prior to sending packet do PMD. Change-Id: I8ca1dba3e7bef41034d36e3525831849f7ac4ac0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-22GRE tests and fixesNeale Ranns2-2/+2
Change-Id: I234240e9bdd4b69ad64a17b1449ae1e81c0edaca Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-11-21Dual Loop Load-Balance NodesNeale Ranns2-74/+276
Change-Id: I23bc477aa03f97dd546747b3297a878055d32e1c Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-11-16Add an ability to punt all unknown UDP traffic to the hostAlexander Popovsky (apopovsk)4-32/+88
By default, VPP replies with ICMP error: port unreachable when receives an ‘unknown’ UDP (destination port with no registered listener) packet. An existing punt() API is extended to accept ALL (~0) as a L4 port number and if used redirects all ‘unknown’ UDP packets to the host. New ‘all’ option is added to the “set punt udp” CLI as well. Change-Id: I444fc5e32ffa3f0f085bb17708bf32b883ba09df Signed-off-by: Alexander Popovsky (apopovsk) <apopovsk@cisco.com>
2016-11-16VPP-521: Classify API enhancement to redirect traffic to pre-defined VRFSteve Shin1-4/+34
Ingress packets are punted to the “Input ACL node” where traffic is classified based on n-tuple keys. If no matched session is found from the classify tables, then it will be passed to “the lookup node” for normal packet forwarding. If a classify session is hit from one of classify tables, then packet vnet buffer field sw_if_index[VLIB_TX] will be updated to the new FIB index used for subsequent IP lookup for this packet. Change-Id: Ifdea63196ddb81c2d5c43b8c98e11ddbf5b11858 Signed-off-by: Steve Shin <jonshin@cisco.com>
2016-11-15feature: convert ipsec output to new feature codeMatus Fabian2-0/+12
Change-Id: Ia287298bac76c8e6bf760d48c1e1e697de52999c Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-11-12Clean up coverity warnings, VPP-486Dave Barach1-5/+4
Change-Id: I709e7cf0bb52d8e6cdc9ddb3b7648660204aa3bd Signed-off-by: Dave Barach <dave@barachs.net>
2016-11-11feature: convert all feature nodes to new feature infraDamjan Marion11-762/+202
Change-Id: I34c527ba910fb282a95458b78d1d684eb337905e Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-10ip_frag: fix implicit enum conversionDamjan Marion1-1/+1
Change-Id: I024b8d79cced45cf53a7a912319eca2cc932b10e Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-09Fix a batch of coverity warnings, VPP-486Dave Barach1-1/+2
Change-Id: I0379844824b4c2eb42588d0fb8e1a7eb441e923f Signed-off-by: Dave Barach <dave@barachs.net>
2016-11-08pg: support for packet generator on different worker threadsDamjan Marion5-5/+5
New Debug CLI: packet-generator new { worker X } Change-Id: I71499733a29b49cd36d753d54846d2553af6d024 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-07use STATIC_ASSERT macro instead of calling _Static_assert directlyDamjan Marion2-7/+7
Change-Id: Iccae655334b6219d22c325108b0e7f37d1dd68cf Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-03Adding Sequence Number - Per Packet Counter(PPC) support for iOAM6.AkshayaNadahalli4-68/+329
- Added support in classifier session to identify a flow to be iOAM6 encap/decap - Sequence number as part of iOAM6 E2E header is created as a plugin. Change-Id: Ib7605de45aecff25d684d099b525f8dc96ee7038 Signed-off-by: AkshayaNadahalli <anadahal@cisco.com>
2016-11-01feature: add new feature handling code and device-input featuresDamjan Marion5-600/+3
Signed-off-by: Damjan Marion <damarion@cisco.com> Change-Id: I010ecde93863dbdad84b993cd3680a5446db59b5
2016-11-01VPP-437: ip6 hbh processing with FIB 2.0Shwetha2-150/+29
1. Modifies ip6 hbh selective processing in lookup only when non-recursive routes are present. 2. Adds ip6 hbh processing in load balance. 3. Cleanup of ip6 iOAM hbh plugin formatting and CLI handling found while testing the changes. 4. Deleted wrong asserts in dual loop for add and pop iOAM hbh nodes. The current data of the buffer ip6 start and will not be 0 5. Deleted set ioam destination cli and associate functions. iOAM add/pop is enabled via classifier, this cli is no longer used. Change-Id: I3aac71ad512762c0b2b602fe88fe0291b85d39c7 Signed-off-by: Shwetha <shwethab@cisco.com>
2016-11-01vppinfra: add STATIC_ASSERT macroDamjan Marion1-2/+4
Change-Id: Icc4e74ae1627c5b97746ed64955a3dc089e3998f Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-01config: rename ip_config_main_t to vnet_feature_config_main_tDamjan Marion11-28/+31
It will not be used for IP only... Change-Id: I90ef3030aff7f9e24767553f019cabc1ea987126 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-29IPv6 Classify Forwarding Graph errorsNeale Ranns3-9/+7
Fix a few places where the protocol of the DPO object was incorrectly set and hence the graph traversed by the packet jumped between ip4 and ip6 nodes. Change-Id: I75c4ecfdf79df39f5dbb7c68f1fc82ff04aaed28 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2016-10-25Support IETF routing Yang models (VPP-503).Neale Ranns4-16/+23
Add support for special routes to send ICMP unreachable or admin prohibited. Change-Id: Ia1ac65b0e5e925c0f9ebc7824141833b4e18f05e Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-21Fix Coverity Errors in FIB. This is mainly consolidating the vnet_link_t and ↵Neale Ranns3-6/+4
fib_link_t enums into just vnet_link_t. Change-Id: Id2147afec1a28e95fec86dfd524088cd56563f63 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-21Quad-loop ip4_lookup_inline, add _x4 validate buffer enqueueDave Barach1-65/+115
Change-Id: I80a25fa90d8a65db619b8697cede2b98bed37cea Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-18Load-balancing in IP4 dual loop typos. (VPP-501)Neale Ranns1-2/+2
Change-Id: I7b70d52d11c228ec5e790632a91b042b34b38d28 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-17VPP-491: Update CLI Command documentation for "show ip fib" and "show ip6 fib".Billy McFall2-40/+138
Change-Id: I9d1d02ffbb3cdbe8c4a3f335ece40f3dcbd848a7 Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-15VPP-488: Fix build errors, which uncovered IPv6 load balance lookup bug.Billy McFall1-2/+2
Change-Id: Id17fcb9154c5337908f29b7ce3a282b6a4b72d64 Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-14VPP-490: vpp crash in show ip6 neighborBilly McFall1-8/+11
Change-Id: I003f95db85ce5085045c607f0b1daaefa792c910 Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-14VPP-489: CLI Command "test lookup" crashes with invalid fib-index.Billy McFall1-1/+8
Change-Id: If4c47b91e949483675cf569cd474b6c85fecef05 Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-14FIB2.0: Adjacency complete pull model (VPP-487)Neale Ranns5-95/+239
Change the adjacency completion model to pull not push. A complete adjacency has a rewirte string, an incomplete one does not. the re-write string for a peer comes either from a discovery protocol (i.e. ARP/ND) or can be directly derived from the link type (i.e. GRE tunnels). Which method it is, is interface type specific. For each packet type sent on a link to a peer there is a corresponding adjacency. For example, if there is a peer 10.0.0.1 on Eth0 and we need to send to it IPv4 and MPLS packets, there will be two adjacencies; one for the IPv4 and one for the MPLS packets. The adjacencies are thus distinguished by the packets the carry, this is known as the adjacency's 'link-type'. It is not an L3 packet type, since the adjacency can have a link type of Ethernet (for L2 over GRE). The discovery protocols are not aware of all the link types required - only the FIB is. the FIB will create adjacencies as and when they are required, and it is thus then desirable to 'pull' from the discovery protocol the re-write required. The alternative (that we have now) is that the discovery protocol pushes (i.e. creates) adjacencies for each link type - this creates more adjacencies than we need. To pull, FIB now requests from the interface-type to 'complete' the adjacency. The interface can then delegate to the discovery protocol (on ethernet links) or directly build the re-write (i.e on GRE). Change-Id: I61451789ae03f26b1012d8d6524007b769b6c6ee Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-13feature: rename vnet_ip_feature_* to vnet_feature_*Damjan Marion5-28/+28
Change-Id: Idf68266f705b0455e5ab0ac73d23c7e0f4120d5b Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-13VPP-286: Add CLI Command documentation via doxygen comments for vnet/vnet/ip.Billy McFall12-140/+998
Change-Id: Ie1be9dc057d07c250852952ea159ed3c44c25f5f Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-10-12Fix coverity warnings, VPP-486Dave Barach1-1/+1
Change-Id: I7a14d9a28514cdb49f65fab1b120b53239fed7e3 Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-12Coverity warnings in new FIB code (VPP-484)Neale Ranns1-1/+1
Change-Id: Ie221e246dd8c6a1b3c76e7aa85924762d4397782 Signed-off-by: Neale Ranns <nranns@cisco.com>