summaryrefslogtreecommitdiffstats
path: root/vnet
AgeCommit message (Collapse)AuthorFilesLines
2016-05-16Add configure policer APIMatus Fabian3-43/+57
JIRA: VPP-67 Change-Id: I04560d78e2eb131cd6cc31472b70b3d3e8fdd79a Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-05-16VPP-68: L2 Rewrite: Support for chained classify tablesPierre Pfister1-0/+18
The classifying capabilities are pretty limited if only a single table can be used. This patch adds support for chained classify tables to L2 Rewrite feature. Change-Id: Ib678fe2028f17b441adb75d85bf3e31185e42c59 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-05-16VPP-69: Create fib or bridge domain with arbitrary IDPierre Pfister6-3/+89
It appeared to me that it might be usefull to allow users to create fibs or bridge domains without a complete knowledge of the current used IDs. These changes define fib and bridge domain constructors when the provided ID is ~0. In such a case, an unused ID is used to create a new fib or bridge domain. Change-Id: Iaba69a023296e6d17bdde45980f9db84832a3995 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-05-15ONE-13: Add CLI/API for LISP static remote mappingsFilip Tehlar4-1/+252
Change-Id: Ic4c717af9629541bac0a0e6c65d0157619c8f578 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-14VPP-63: clean up config scripts, remove specific hostnamesDave Barach37-59/+45
Change-Id: Ifb77256fa691b1a90045a10448835c09b764e74f Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-13ONE-7: Fix map-request encapsulationFlorin Coras1-68/+81
We now try to find the first map-resolver IP we have a route to and decide the ip lookup node according to map-resolver IP. Change-Id: I68fc12861dc1e9a203ebf6caefd4f053a741a785 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-13VPP43 - NSH refactoring: Added nsh-map nodesKeith Burns (alagalah)19-2440/+1672
- removed vnet/vnet/nsh-gre - removed all nsh from vnet/vnet/nsh_vxlan_gpe to vnet/vnet/nsh - moved vnet/vnet/nsh_vxlan_gpe to vnet/vnet/vxlan_gpe - added cli and binary api for VXLAN GPE tunnels - plan to move vnet/vnet/nsh to new repo (sfc_nsh) and make plugin - added cli for NSH (binary API will be done in sfc_nsh) - vnet/vnet/gre will be extended in VPP-54 Change-Id: I1d27def916532321577ccd68cb982ae0d0a07e6f Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-05-13ONE-11: Fix bugs in LISP APIAndrej Kozemcak1-1/+1
- check input variables - in locator_set dump, add support for remote locator_set Change-Id: Ib10028e83fead358f820ae45c71b6ca4dfbe2f1e Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-05-11ONE-9: Fix clang build errorsFlorin Coras2-4/+4
Change-Id: Icbf3e269471ee0fc1d21f842b2ea220328a0f891 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-11ONE-8: Fix adj signature issuesFlorin Coras2-29/+37
When inserting routes into ip4/6 fibs, we first added a dummy adjacency and afterwards manually updated its rewrite header to enable src/dst forwarding. The downside to this is that the adj signature is changed and therefore when deleting a route the adjacency signature is not removed from adj_index_by_signature hash resulting in crash if the same adjacency is re-inserted. This patch avoids the issue by enforcing the insertion of 'complete' adjacencies thereby obviating the need to update the rewrite header. Change-Id: Ib43bfe72a65e2cf9ef7685a99596eb1d7723e543 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-11ONE-6: dp is not programmed when re-enabling LISPFilip Tehlar1-6/+24
Change-Id: I4c0c5d44168da811a713943275430a378ff46929 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-10ONE-4: Add LISP enable/disable API/CLIFilip Tehlar4-0/+147
This patch adds an enable/disable API/CLI for control plane which calls similar functions for data plane. When re-enabling it also re-populates dataplane with tunnels and interfaces. Change-Id: Id8c3d6af90ecc0be331d502756914b1f62824046 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-09ONE-3: Delete dst route when src fib is emptyFlorin Coras1-1/+21
Properly check that src fib is empty. Change-Id: I4072169027a404cad66eaaa8450f7c18f1fa8073 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-09VPP-44: iOAM service and path verification using shamir's secret sharingShwetha Bhandari7-12/+1127
Change-Id: I445ad13f8f93cb75cacc94192c4ae85c8ca14e35 Signed-off-by: Shwetha Bhandari <shwethab@cisco.com>
2016-05-09ONE-5: Remove unused vnet_lisp_gpe_add_del_tunnel APIFlorin Coras2-46/+23
Change-Id: Ib22ec807d2b74b7c3cb37f66052cd07bc4d896db Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-07VPP-45 Fix crash when GRE packet received on new i/fChris Luke1-0/+3
If a GRE tunnel is created, no other interface added and the GRE tunnel is not set "up" then a crash occurs on the first packet for this tunnel because fib_index_by_sw_if_index[] does not yet have a mapping to the fib the new interface is in. The code to set this is missing from gre/interface.c Change-Id: I567ad74a2af3ea5afe4a40ed39a1d4395642f77c Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-06VPP-34 GRE traffic blackholes in encap directionChris Luke1-1/+12
The GRE code is missing the logic to indicate the "hardware" interface is up. The fix is to listen for admin up/down events on the "software" interface and reflect that into the hardware interface state. Change-Id: If06e4f03989b2c52c32f50c11e1943e42bb2609f Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-06Check IP adj_index to make sure it is valid to prevent possible crashJohn Lo2-2/+6
Change-Id: I439aac05638fd40e314bec8756e42a32c436321c Signed-off-by: John Lo <loj@cisco.com>
2016-05-05Fix vpp_lite build caused by missing definition of unlikely macroDamjan Marion1-1/+1
Change-Id: I11b34e171c1c7907dd3faec219866418b4e792f6 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-05ONE-2: Add new LISP dump API for lisp gpeAndrej Kozemcak2-0/+14
API: lisp_gpe_enable_disable_dump Change-Id: I1c8e78f00f9a3f99c1f2f54884af565292e4ccf8 Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-05-05VPP-39 - refactoring of NSH into own folderKeith Burns (alagalah)8-136/+140
- common header files and structs used in both GRE and VXLAN-GPE Change-Id: I06d0b773e936fb011408817237059f24a4beb412 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-05-04NETMAP: Some fixesMohsin Kazmi3-11/+36
1) Correct the NIOCRXSYNC macro on receive side from NIOCTXSYNC. 2) Flush the pending messages in the tx rings. Change-Id: I581040d03b1633a3d6fb22fa1fb285bcb7975afb Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2016-05-04VPP-42: VPP crashes in IPsec code when running multithreadedMatthew Smith5-33/+58
Change-Id: Ib231642cfead5f5e8e45508361a11c87aad83b51 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2016-05-03VPP-15 Add decap-next for nsh-gre tunnel short_helpHongjun Ni1-2/+2
Change-Id: I1965e9852f62aaf8c1576b72446a43b5878eb452 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-05-03VPP-15 Add ethernet support for nsh-gre's decap-nextHongjun Ni1-1/+3
Change-Id: Icf3424671b4aa0f619983a3eb61785b533fdc11d Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-05-02Small fixes to lisp-gpe header and decapFlorin Coras2-12/+20
- enforce lisp-gpe router mode (set P bit) - fix selection of ip6 decap node - fix dual-dual lool error index init Change-Id: I1a9623c0eb7e81a2cfb60efaa88dc44ee65e664d Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-02VPP-31 Fix linker issue with new sr-replicateChris Luke2-5/+1
Changes in gnu ld in Ubuntu 16.04 tickles an issue with the declaration pattern used for vlib_node_registration when, as is the case in sr_replicate.c, the forward declaration is seen by the linker in a module before the real declaration. This patch uses the "extern" keyword in the forward declaration to avoid this issue and removes extra forward declarations. Change-Id: I075b0cd9932404e1360c7f9aec7114003d110f60 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-02VPP-30 sr_replicate requires DPDKKeith Burns (alagalah)3-0/+22
- added fix to disable functionality when no DPDK - may extend to support non-DPDK case in future. Change-Id: Ic8ad4eeb91c4866f3f102dd4a718898eb0419dee Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-05-02HONEYCOMB-10: jVpp - the new java API. C code and jar file generationMarek Gradzki1-1/+5
Added comments generation for C and Java files. Change-Id: Ifb670a5592eb871bfe68804f0a8d8f9b5b14f00a Signed-off-by: Marek Gradzki <mgradzki@cisco.com> Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-05-02Netmap: typo correctMohsin Kazmi1-1/+1
There is a typo mistake in netmap. This patch corrects it. Change-Id: Id358e0de74555ac7858c93fa1335f02abd5624b5 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2016-04-30IP6 SR multicast replicatorKeith Burns (alagalah)10-38/+1124
- adds ability to name tunnel - creates policy as a collection of tunnel names - map ip6 multicast address to policy and replicate packet - adds zero memcpy for invariant portion of packet Change-Id: Icd2fe6a2cf65c09906e82ed1afbb0eae8df79452 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-04-29Fix use of vni throughout lisp codeFlorin Coras2-32/+35
This leverages the vni LCAF support introduced in a previous patch. Change-Id: I0a1b6b9dfc8095d62ad3f4e800b9f2d04c475521 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-29Add indirect next hop supportDamjan Marion4-40/+156
Change-Id: I0626c2650eba7961a15b1e87a664b57bef5503a2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-29Remove unused variable in lisp decapFlorin Coras1-3/+0
Change-Id: I6aef98252e6134fd2f1a30a8407086ab98285a53 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-29VPP-25 Add API for GRE tunnel create/delete/show.Chris Luke2-47/+159
Add API methods to create, delete and show GRE tunnels. Also add missing CLI functionality for deleting and listing configured tunnels. Change-Id: I7565966037d94ade07938e4ff0d9333419716857 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-04-29Fix ip-udp encap checksum for ip6Florin Coras1-0/+20
Thanks to Chris Luke for reporting. Change-Id: I4f2ac5bb0eb565738755ddb00e8c918134ff67b6 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-29Fix ip4 address formatting in the show ip fib ouptutDamjan Marion2-3/+6
Change-Id: I3ffb2e3cef63cbc9f2abc81bbdedabb34b9b3408 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-29Improve performance of dpdk-vhost driverShesha Sreenivasamurthy1-0/+9
By setting the flag in used table, guest is prevented from kicking the host when it adds buffers. This results in 100% performance improvement when tested throughput using iperf3. Change-Id: Iefaf5b97d1444c216bb373998732a437d333d521 Signed-off-by: Shesha Sreenivasamurthy <shesha@cisco.com>
2016-04-29Add TX statistics for nsh-gre tunnelHongjun Ni1-4/+77
Change-Id: I20e4abcc82c00e43dd441f1882cb6be531b6876e Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-29Add RX statistics for nsh-gre tunnelHongjun Ni1-1/+81
Change-Id: I045bb9d51c9a82ccba6e792485b9418bd78b8520 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-29Fix decap-next for ethernet format in nsh-vxlan-gpeHongjun Ni1-0/+2
Change-Id: I9f5efef4c2b821e4c7d76ed6e2c4f52c2495e512 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-29Add support for LCAF Instance IDFilip Tehlar10-100/+974
Change-Id: Ifce3f2bdcba099157a42d0b694f3161b9f700ed2 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-04-29Add lisp-gpe ip6 data-plane supportFlorin Coras11-755/+1679
The implementation mimics that of the ip4 data-plane. Therefore, a new lgpe-ip6-lookup lookup node is introduced for ip6 source lookups, a lisp-gpe-ip6-input node for decapsulating ip6 encapsulated packets and the tx function of the lisp-gpe interface is updated to support any mix of v4 and v6 in underlay and overlay. Change-Id: Ib3a6e339b8cd7618a940acf0dd8e61c042fd83dd Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-29Clean up per-thread mheap setup.Dave Barach1-2/+0
The stats thread was sharing the main mheap when we started at least one worker or I/O thread, but ran on its own mheap when we started 0 worker + io threads. Net of this change; if a VLIB_REGISTER_THREAD instance specifies a per-thread mheap, a per-thread mheap will be provided. Otherwise, threads share the main heap. The stats thread now uses the main heap. Simpler is better. Change-Id: I1fff0dd66ae8f7dfe44923f702734e2832b55b09 Signed-off-by: Dave Barach <dbarach@cisco.com>
2016-04-28LISP IPv6 control support, create IPv6 headerAndrej Kozemcak2-15/+21
Change-Id: I50d2946df8f5de0142b76f4023d8bd60ee6d2f0d Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-04-28VXLAN over IPv6.Chris Luke6-166/+628
Refactors the VXLAN node to work with both IPv4 and IPv6 transports. There is a discussion thread for this change at https://lists.fd.io/pipermail/vpp-dev/2016-March/000279.html Note that this changes the binary configuration API to support both address families; each address uses the same memory for either address type and a flag to indicate which is in use. This also includes changes to the Java API to support both address families. The CLI and VAT syntax remains unchanged; the code detects whether an IPv4 or an IPv6 address was given. Configuration examples: IPv4 CLI: create vxlan tunnel src 192.168.1.1 dst 192.168.1.2 vni 10 encap-vrf-id 0 decap-next l2 IPv6 CLI: create vxlan tunnel src 2620:124:9000::1 dst 2620:124:9000::2 vni 16 encap-vrf-id 0 decap-next l2 IPv4 VAT: vxlan_add_del_tunnel src 192.168.1.1 dst 192.168.1.2 vni 10 encap-vrf-id 0 decap-next l2 IPv6 VAT: vxlan_add_del_tunnel src 2620:124:9000::1 dst 2620:124:9000::2 vni 16 encap-vrf-id 0 decap-next l2 TODO: The encap path is not as optimal as it could be. Change-Id: I87be8bf0501e0c9cd7e401be4542bb599f1b6e47 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-04-28Fix bug that prevented packet trace from working on multicoreBud Grise1-6/+14
The vlib_node_runtime can change after the thread starts up. Change-Id: Id5bc248c009ef9be26213b36a0115938b61cb8c4 Signed-off-by: Todd Foggoa (tfoggoa) <tfoggoa@cisco.com>
2016-04-28Add ability to set l2_mode_noprotChristian Dechamplain (cdechamp)2-0/+36
Change-Id: I3767a1bbe55452600863e145cbc12b114d6d1024 Signed-off-by: Todd Foggoa (tfoggoa) <tfoggoa@cisco.com>
2016-04-28Add histogram to frame queue tracingBud Grise3-32/+132
Display it via "show frame histogram" CLI. Change-Id: I436a2125f391af85d1743cf8765e5f27fa0ca809 Signed-off-by: Todd Foggoa (tfoggoa) <tfoggoa@cisco.com>
2016-04-28Track number of ethernet vlans in a frameChris Luke8-7/+83
Adds flags to the packet buffer to track the number of VLANs in the current Ethernet frame. We use two bits to signify 0, 1 or 2 VLANs. The value 3 signififies an unknown quantity of VLANs, which includes "three or more" which is not widely supported. We place the bits in the vlib_buffer section; that is not the opaque section, so that all subordinate nodes can use it. For background, see the discussion thread at https://lists.fd.io/pipermail/vpp-dev/2016-March/000354.html The helper macro ethernet_buffer_header_size(buffer) uses these bits stored in "buffer" to calculate the Ethernet header size. The macro ethernet_buffer_set_vlan_count(buffer, count) sets the appropriate bit values based on the number in "count". By current frame we are referring to the case where a packet that arrives from the wire is carrying an encapsulated Ethernet packet. Once decapsulated that inner packet becomes the current frame. There are two places where this value is set; For most Ethernet frames this will be in the "ethernet-input" node when that node parses the Ethernet header. The second place is whenever vnet_update_l2_len() is used to update the layer 2 opaque data. Typically this function is used by nodes just before they send a packet into l2-input. These bits are zeroed in vlib_buffer_init_for_free_list() meaning that wherever the buffer comes from they have a reasonable value (eg, if ip4/ip6 generates the packet.) Primarily this VLAN counter is used by nodes below "ethernet- input" and "l2-input" to determine where the start of the current Ethernet header is. There is opaque data set by "ethernet-input" storing the offset of the current Ethernet header but, since this is opaque, it's not usable by downstream nodes. Previously several nodes have made assumptions regarding the location of the Ethernet header, including that it is always at the start of the packet buffer (incorrect when we have encapsulated packets) or that it is exactly sizeof(ethernet_header_t) away (incorrect when we have VLAN tags.) One notable case where this functionality is required is in ip6_neighbor when it generates a response to a received neighbor soliciation request; it reuses the incoming Ethernet header in-situ and thus needs to reliably know where that header begins. Also, at the suggestion of Dave Barach, this patch removes definition of HGSHM bits in the buffer flags since they are unused and unlikely to ever be. Change-Id: I00e4b9ced5ef814a776020c395d1774aba6185b3 Signed-off-by: Chris Luke <chrisy@flirble.org>