aboutsummaryrefslogtreecommitdiffstats
path: root/vpp
AgeCommit message (Collapse)AuthorFilesLines
2016-06-17Dynamically compute ip feature subgraph orderDave Barach1-8/+26
This change-set enables plugins to add themselves to the ip4/ip6 feature subgraphs without having to modify core vpp engine code at all. Add VNET_IP4/IP6_UNICAST/MULTICAST_FEATURE_INIT macros which express the required ordering constraints, and off you go. Along the way, added an implementation of Warshall's algorithm to vppinfra; to compute the positive transitive closure of a relation. In this case, the relation is "feature A runs before feature B." With that in hand, ip_feature_init_cast(...) computes a partial order across the set of configured feature subgraph nodes. In unit-testing, we discovered VPP-145 - ip4/6 inacl wiped out vnet_buffer(b)->ip>current_config_index, which exists in main. So, we fixed that by moving b->trace_index, adding b->current_config_index, and removing the ip opaque union current_config_index. Change-Id: Iff132116f66413dc6b31ac3377198c7a32d51f48 Signed-off-by: Dave Barach <dave@barachs.net>
2016-06-17New LISP API map-request itr-rlocAndrej Kozemcak2-1/+97
API to constrain source locator when sending map-requests. lisp map-request itr-rloc <locator-set name> Change-Id: I19f3a1aa8a387ca8662ccf3a4ad774ea7d655f80 Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-06-15VPP-137: VPP sends ARP with wrong requested IPNeale1-1/+13
Change-Id: I01802f3dab04c940e65236ba6e680f1e504a0a5f Signed-off-by: Neale <nranns@cisco.com>
2016-06-14Add sw_if_index to af_packet_create and various clean upsKeith Burns (alagalah)3-2/+33
Change-Id: I4c2972b55d5d99f3aa7a05885791eef47351c734 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-06-13Explicity specify IP address type for format_ip46_address functionDamjan Marion1-2/+4
Change-Id: I3379517535a98a7a5fbd3173503f288a81378821 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-06-12Fix next-protocol issue configured from HoneycombHongjun Ni1-1/+1
PatchSet 2: rebuild. Change-Id: I18ee050629129871b44271f92a1e63b661d55c05 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-06-10Fix issue: no handler for msg id 13Hongjun Ni1-352/+351
Delete send_sw_interface_flags within sw_interface_dump, because send_sw_interface_details has covered the link status. Change-Id: I8ea8024ff88cfcc5799913762f047767fdb3c79c Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-06-08VPP-127: Make rpm/deb provide vpp group to access vpp-apiEd Warnicke2-0/+8
Change-Id: I80b7f55034d64ad8360e29c669002948317c64ba Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-06-08VPP-124: Fix rpms to work out of the box.Ed Warnicke1-0/+14
Currently, for vpp we are not building any rpms for dpdk or igb_uio. This is because uio_pci_generic as shipped with centos works with vpp. However, our vpp rpms do not install kernel module uio_pci_generic at start up and the /etc/vpp/startup.conf does not configure vpp to use uio_pci_generic. vpp rpms should do both, so that when the vpp rpm is installed and vpp started, it just works out of the box. This patch fixes the rpms to do so. Change-Id: Ib934b51f9271cded466d235aa4044bef75c35960 Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-06-01VPP-105 Map API SHM uid/gid name to numberChris Luke1-1/+53
When providing uid or gid for the API SHM, if non-numeric values are given look them up in the local system user database and if found use the values discovered. Change-Id: I95152f58646643bc44d2af4cbad6338901935c69 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-06-01VPP-83 Allow non-privileged clients to use the vpp binary API.Dave Barach2-5/+18
Use the command line argument "api-segment { uid <nnn> gid <nnn> }" to configure shared memory segment file ownership. Defaults to uid = gid = 0. Shared-memory segments are explicitly set to 0770 mode, aka "rwxrwx---". Change-Id: Ic5d596b68139add61e7de6ace035c57dfd030111 Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-31Add CLI/API for clearing all remote mappingsFilip Tehlar2-2/+4
Change-Id: I5aef12d3a9c8daefff52e5f958c504f5d2ff9fd0 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-31ONE-15: Fix duplicate locator, refactoring locatorAndrej Kozemcak1-2/+2
Check duplication locator and clean after locator when remove it. Refactoring locator_set code. Change-Id: Ib83cbcddc7a363a60fa5b6a366203d0dc0ea7ca6 Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-05-30Add Dump API for VxLAN-GPE tunnelHongjun Ni3-2/+94
Change-Id: I4913fe6c4b1280939147887896aea9b79a9f7f10 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-05-29Fix VxLAN-GPE add_del API issueHongjun Ni1-2/+2
Change-Id: I4210b3320d3fe841ba7ff1349b6a52affc047338 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-05-27VPP-95 VXLAN add_del API intermittent failureChris Luke1-2/+2
The VXLAN add_del API sometimes rejects calls with VNET_API_ERROR_SAME_SRC_DST when the two parameters are obviously different. This is because the API code is checking the "is_ip6" flag in a not-yet initialized area of memory leading to random results. Also fix help text for vxlan_add_del_tunnel in vat. This does not change the API; it repairs intermittent failure. Change-Id: I41863694f478c1f669078f82f69d8cca4841c989 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-25Move dpdk startup config data to separate structDamjan Marion1-1/+1
This is preparation work for moving DPDK EAL and mempool initialization to vlib. Change-Id: I2dc35aa53edec0e07fc2650d630aa625831154c3 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-25Add Vxlan-Gpe over IPv6Hongjun Ni3-6/+20
PatchSet4: consolidate code as per comments. PatchSet3: simplify the code using ip_udp_encap_one/two PatchSet2: consolidate comments and indent style Change-Id: Ia8b43f854a46d77e838e198566200ad28fd72472 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-05-23Move rte_delay_us_override so it overrides DPDKTodd Foggoa1-0/+41
The current location in the vnet dynamic library does not override the dpdk weak function as intented. Moving this function to the main app allows the linker to find the non-weak symbol and override it. Change-Id: I96c6dc5af2e511cc1f84bd66419c5a4ac96a9541 Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
2016-05-23VPP-81: Print interface name after creating an interface with CLIPierre Pfister1-2/+2
When the CLI is used to create an interface, and whend the operation succeeds, the newly created interface name is printed-out. The patch includes the following interfaces types: - AF_PACKET - Vhost User - Netmap - GRE - L2TP - MPLS-GRE - Loopback Change-Id: Id518c139ec63a261eae81d2ed95c4cd1f10b5157 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-05-23Add LISP RTR supportFilip Tehlar2-0/+38
Change-Id: I8a3770f8f1cd1fde6765b81d35aacaaf4ff98b82 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-21Add per-thread, per-node runtime stats serializationDave Barach2-5/+12
Change-Id: Ic4009cdbac67b7cd53c88079439496b9d9dfaa35 Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-20VPP-80: netmap binary API message element name collisionDave Barach2-6/+6
if_name collides w/ ietf-interfaces.yang member name, causing a build-break in an existing yang-model-based app. Rename to "netmap_if_name". Change-Id: Id386eacd77343dd15a868c28dacd2b0e4523bc9b Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-20Add policer dump APIMatus Fabian2-0/+137
JIRA: VPP-67 Change-Id: I8fced60a884f1585b1f51002832d47631eea9571 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-05-19Add support for multiple microarchitectures in single binaryDamjan Marion4-9/+15
* compiler -march= parameter is changed from native to corei7 so code is always genereted with instructions which are available on the Nehalem microarchitecture (up to SSE4.2) * compiler -mtune= parameter is added so code is optimized for corei7-avx which equals to Sandy Bridge microarchitecture * set of macros is added which allows run-time detection of available cpu instructions (e.g. clib_cpu_supports_avx()) * set of macros is added which allows us to clone graph node funcitons where cloned function is optmized for different microarchitecture Those macros are using following attributes: __attribute__((flatten)) __attribute__((target("arch=core-avx2))) I.e. If applied to foo_node_fn() macro will generate cloned functions foo_node_fn_avx2() and foo_node_fn_avx512() (future) It will also generate function void * foo_node_fn_multiarch_select() which detects available instruction set and returns pointer to the best matching function clone. Change-Id: I2dce0ac92a5ede95fcb56f47f3d1f3c4c040bac0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-18Add netmap APIMatus Fabian2-1/+93
JIRA: VPP-66 Change-Id: I421529fa8eafe5268745a34a4fcd40156defcdf8 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-05-16VPP-61 Patch1/2 - Remove NSH from VPPKeith Burns (alagalah)2-54/+0
- Had issues with original patch and CSIT, breaking into -- Makefile and API changes -- Follow up patch removing NSH directory Change-Id: I6c2f49a74d59b97ce4ea43799cc6f01f5cb1d5a2 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-05-16Add configure policer APIMatus Fabian2-1/+70
JIRA: VPP-67 Change-Id: I04560d78e2eb131cd6cc31472b70b3d3e8fdd79a Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-05-15ONE-13: Add CLI/API for LISP static remote mappingsFilip Tehlar2-0/+101
Change-Id: Ic4c717af9629541bac0a0e6c65d0157619c8f578 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-13VPP-57 Add Doxygen to VPPChris Luke1-8/+0
- Configures Doxygen. - Adds a source filter to do magic on our use of the preprocessor to do constructor stuff to make Doxygen grok it better. - Adds a convenience helper to the root Makefile. - Adds a README.md to the root directory (and which Doxygem uses as its "mainpage". - Add several other documentative files. - Currently using SVG for call graphs, though this may have a load-time performance impact in browsers. Change-Id: I25fc6fb5bf634319dcb36a7f0e32031921c125ac Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-13VPP43 - NSH refactoring: Added nsh-map nodesKeith Burns (alagalah)3-207/+42
- 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 Kozemcak2-7/+52
- 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-12VPP-53: clang build fails in API on SR testsDamjan Marion2-11/+11
Change-Id: Ib3117d7b5b6b8c97acfea17ad27c965f6ce2e829 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-10ONE-4: Add LISP enable/disable API/CLIFilip Tehlar2-15/+46
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-10Add af_packet APIMatus Fabian2-1/+89
Change-Id: I39409ae9e75fdb59d8cbbd940fa192b24eb79b6a Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-05-09ONE-5: Remove unused vnet_lisp_gpe_add_del_tunnel APIFlorin Coras3-130/+0
Change-Id: Ib22ec807d2b74b7c3cb37f66052cd07bc4d896db Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-09VPP-20: Verify valid sw_if_index in ip_address_dump.Ole Troan1-0/+4
(Also checked other API calls for same error without finding any.) Change-Id: I1062ecf8eff004efb3fad4582a00c6b512c36999 Signed-off-by: Ole Troan <ot@cisco.com>
2016-05-05ONE-2: Add new LISP dump API for lisp gpeAndrej Kozemcak2-0/+52
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)2-27/+27
- 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-03HONEYCOMB-10: Copy context identifier from request to replyMarek Gradzki1-25/+45
Some of the send_*_details methods did not copy context identifier from dump request message to details response. The context identifier is used for request<->reply matching. Change-Id: I8a744f3817bef94d7fa8ecb7bec6ea942c1a8793 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-05-02VPP-30 sr_replicate requires DPDKKeith Burns (alagalah)1-0/+5
- 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-04-30IP6 SR multicast replicatorKeith Burns (alagalah)3-3/+239
- 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-29VPP-25 Add API for GRE tunnel create/delete/show.Chris Luke3-0/+157
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 use of format_ip46_address in custom_formatChris Luke1-4/+4
format_ip46_address() does not take a 2nd argument indicating the address family. Harmless since the extra argument is simply not consumed. (noticed while adding gre to this module) Change-Id: I692883872eedb4a8e3c0be7680d03b4b257ba6f9 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-04-29Add support for LCAF Instance IDFilip Tehlar1-2/+2
Change-Id: Ifce3f2bdcba099157a42d0b694f3161b9f700ed2 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-04-29Add lisp-gpe ip6 data-plane supportFlorin Coras1-7/+3
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-1/+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-28VXLAN over IPv6.Chris Luke3-14/+37
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-27HONEYCOMB-10: Add missing context parameter to *details structsMaros Marsalek2-8/+24
Some of the *details structures defined in vpe.api did not have the context parameter that is used for request<->reply matching. Without the context, it is difficult for upper layers (users of vpp binary apis) to identify which reply or details message belongs to which request Tested manually using vat Change-Id: I5fda54a891b68349f80c87fae06009791a028147 Signed-off-by: Maros Marsalek <mmarsale@cisco.com> Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-04-26Make automake silent rules defaultDamjan Marion1-1/+1
Change-Id: Ia504ccdac1deac20f20cf7fb76f78b2d8c505474 Signed-off-by: Damjan Marion <damarion@cisco.com>