aboutsummaryrefslogtreecommitdiffstats
path: root/vnet
AgeCommit message (Collapse)AuthorFilesLines
2016-04-25Add native NETMAP driverDamjan Marion10-5/+1666
This is first drop of native NETMAP driver. It is mainly tested with NETMAP pipes but also support for native interfaces should work. New CLI: create netmap [<intf name>|valeXXX:YYY] [hw-addr <mac>] [pipe] [master|slave] Following example creates NETMAP pipe where VPP acts as master: create netmap name vale00:vpp1 pipe master then NETMAP pkt-gen tool can be used to send traffic: pkt-gen -i vale00:vpp1}0 -f tx Change-Id: Ie0ddaa5facc75285b78467420e8a9f9c8dfc39e5 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-25Add APIs to access dpdk informationTodd Foggoa (tfoggoa)2-0/+62
- Add an API to get the number of DPDK mbufs - Add an API to detemrine if the io thread has been released - Add an API to get the DPKD pmd type - Add an API to get the cpu socket of a device Change-Id: I926401891fb6053c676125c9d0621cc9ed1f80bb Signed-off-by: Todd Foggoa (tfoggoa) <tfoggoa@cisco.com>
2016-04-25Change ethernet's result within unformat_decap_nextHongjun Ni1-1/+1
Change-Id: Ib3f9d1a03930842063ebfbfcfeefca533a678416 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-25Convert lisp-gpe encap to interface tx nodeFlorin Coras9-531/+856
With this change, one lisp-gpe interface is created per vrf/overlay tenant and its tx node is used as encapsulator (or tunnel ingress). For all intents and purposes, the tx node inherits all functions previously performed by the lisp-gpe-encap node and it maintains said node's position in lisp-gpe's data-path graph. Chiefly, this opens the possibility to chain interface features, like IPSec, transparently with LISP. Furthermore, it brings basic data plane support for vrfs and LISP instance-ids (or virtual network instances as per RFC7364). Other changes include improvements to lisp-gpe enable and disable sequences and corresponding API/VAT fixes. Change-Id: I085500450660a976b587b1a720e282f6e728d580 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-25Improve mechanism for using loopback interface as BVI for BDsJohn Lo6-78/+63
When loopback interface is configured as BVI, instead of changing its output node from loopN-output to l2-input, the loopN-output node is now kept while its next tx node is changed from ethernet-input to l2-input. The packet setup previously done in bvi_to_l2 as part of l2-input is now performed in the loop output node. This change adds an extra node in the BVI output path but provides the following improvements: 1. IP address/route created on loopback prior to it being configured as BVI will still work properly. The requirement to (re)configure IP/route on loopback after it is configured as BVI is removed. 2. The output stats for loopback interfaces are always provided irrespective of their BVI configuration. 3. The loopback-BVI output stats can be batch updated outside the packet loop in output node, instead of per packet update in l2-input node, making l2-input node more efficient for BVI packets. 4. Restore original node property as implemented in node.c function vlib_node_add_next_with_slot() where next node indices stored in next slots of each node will remain unique. 5. Packet trace for BVI output includes loopN output node which provides useful packet data. Change-Id: I7f5bc72ef953a367363a179088210596881f9e73 Signed-off-by: John Lo <loj@cisco.com>
2016-04-22Add clib_memcpy macro based on DPDK rte_memcpy implementationDamjan Marion94-455/+444
Change-Id: I22cb443c4bd0bf298abb6f06e8e4ca65a44a2854 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-22Fix duplicate freeDave Barach1-1/+2
Change-Id: Ifda07e476c74da9bfd7e21f02aa09160a0212e24 Signed-off-by: Dave Barach <dbarach@cisco.com>
2016-04-22Use memory from other CPU sockets if there is no localDamjan Marion1-0/+11
This fixes crash when local socket memory is not available so rx/tx queue setup fails. Here we simply retry operation without being so picky about memory location. Change-Id: I5bae47defe3c0fe120853378ed13141893284a5a Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-20Allow L3 forwarded jumbo packets on Bonded InterfacesJohn Lo1-16/+16
Set max L3 packet size allowed to the lowest value of the slave links. Also cleanup FIXME's for VMXNET3 driver. Change-Id: Ia5cf742f2ab13b8cdc8ea6286f56464ee4f8c51d Signed-off-by: John Lo <loj@cisco.com>
2016-04-20Python-API: Inital commit of Python bindings for the VPP API.Ole Troan1-0/+141
See: https://wiki.fd.io/view/VPP/Python_API Change-Id: If135fc32208c7031787e1935b399d930e0e1ea1f Signed-off-by: Ole Troan <ot@cisco.com>
2016-04-20delete loopback interface cliAlpesh S. Patel1-0/+6
(to be consistent with other delete interface commands) Change-Id: I41f63cc5b11d9fa9489edc54b17a4d857b711b66 Signed-off-by: Alpesh S. Patel <apatel9191@hotmail.com>
2016-04-20Cleaned up formatting in device.c - no functionality changes.Keith Burns (alagalah)1-64/+64
Change-Id: Ia7d83784d50b3651117201b876464528d015edea Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-04-20Change from nsh-encap to nsh-vxlan-gpe within nsh vxlan tunnel's short_helpHongjun Ni1-1/+1
Change-Id: Ifeba2e9857a112139b7be6436b59f05858f1abf9 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-20Move "ethernet" debug cli commands to "set interface"Damjan Marion4-127/+78
Following two commands are changed: ethernet mtu -> set interface mtu ethernet promiscuous -> set inteface promiscuous Change-Id: I5037e021933156c06044fb723a05ad330f8162b7 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-18Add API to get the dpdk interface stats delta.Sean Hope4-22/+85
Internally change the clearing and displaying of the dpdk stats to be based on deltas. Change-Id: I76605ac67492a374ff5522ff44d4a0190cf94e18 Signed-off-by: Todd Foggoa (tfoggoa) <tfoggoa@cisco.com>
2016-04-18Add support for AArch32Christophe Fontaine7-18/+18
gcc version 4.9.2 (Raspbian 4.9.2-10) Tested on Linux raspberrypi 4.4.6-v7+ #875 SMP Tue Apr 12 16:33:02 BST 2016 armv7l GNU/Linux CPUs may be little or big endian, detect with gcc flags, not the processor architecture Add a new flag $(PLATFORM)_uses_openssl which allows to disable the link with openssl lib. vlib/vlib/threads.c: startup.conf must: - specify the heapsize as we don't have hugepages on raspbian cpu { main-core 3 } heapsize 64M Corrects in various files the assumption uword == u64 and replaces 'u64' cast with 'pointer_to_uword' and 'uword_to_pointer' where appropriate. 256 CPUs may create an OOM when testing with small memory footprint ( heapsize 64M ), allows the number of VLIB_MAX_CPUS to be set in platforms/*.mk vppinfra/vppinfra/longjmp.S: ARM - copy r1 (1st parameter of the setjmp call) to r0 (return value) vppinfra/vppinfra/time.h: On ARMv7 in AArch32 mode, we can access to a 64bit register to retreive the cycles count. gcc on rpi only declare ARM_ARCH 6. Override this info, and check if it is possible to use 'mrrc'. /!\ the time function will NOT work without allowing the user mode access to the PMU. You may download the source of the kmod here: https://github.com/christophefontaine/arm_rdtsc Change-Id: I8142606436d9671a184133b935398427f08a8bd2 Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
2016-04-17dpdk socket-mem handling optimizationsDamjan Marion2-67/+81
- introduces default socket-mem size of 512 MB per socket - default socket-mem value is applied to all discovered CPU sockets - fixes bug when < 1024 socket-mem parameter is specified - for socket-mem < 1024 code prefers 2 MB pages - improves handling of manualy specified socket-mem values Change-Id: I9ef848108d7dd1228fbd82a5be49eb5277a93683 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-16Using classifier/ACL from now on. Changes pertaining to that.rangan1-21/+52
Change-Id: I682b9a361c7308d6d0abb9d7d0320215f0d91e50 Signed-off-by: rangan <rangan@cisco.com>
2016-04-15af_packet: clear bitmap entries when processing inputPeter Lei1-0/+1
Need to clear the bitmap entry when processing each input file descriptor. This becomes an issue on interface deletion. A crash occurs due to assertion in a debug image https://gerrit.fd.io/r/#/c/615/ - removed the code when this was set again, but the bitmap needs to be cleared Change-Id: I7cccb9bf8b9b2eb5a7f60ecda7530784a9512116 Signed-off-by: Peter Lei <peterlei@cisco.com>
2016-04-15Took care of code review comments. Extended the fix to other files.rangan2-0/+4
Change-Id: I24e688884cd5896b317efb53e1d193f7d363715a Signed-off-by: rangan <rangan@cisco.com>
2016-04-15Add LISP APIAndrej Kozemcak4-18/+240
SET API: lisp_add_del_locator_set lisp_add_del_locator lisp_add_del_local_eid lisp_gpe_add_del_fwd_entry lisp_add_del_map_resolver lisp_gpe_add_del_iface SHOW API: lisp_locator_set_dump lisp_local_eid_table_dump lisp_gpe_tunnel_dump lisp_map_resolver_dump Change-Id: Ie7f521e7e64ad2736b8417852b38454bfdef3728 Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-04-14Rework of DPDK PCI device uio driver binding processDamjan Marion1-301/+57
This is complete rework of DPDK PCI initialization. It drops previous scheme where lspci/route/awk/sed are used and instead sysfs is solely used for discovering Ethernet PCI devices. Criteria for blacklisting device is changed from exsiting routing table entry to simple interface state obtained by SIOCGIFFLAGS ioctl(). It checks for IFF_UP flag, so as long as interface is declared up and even when carrier is down interface will be blacklisted. Change-Id: I59961ddcf1c19c728934e7fe746f343983741bf1 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-14Init rte_mbuf length fields in af_packet driverDamjan Marion1-0/+5
Change-Id: I30cdad9585c1457c0d8ceecb3e5110ad40740021 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-14Change ARP and IP6-ND nodes to use interface-output node for outputJohn Lo5-89/+24
The current mechanism for setting up arp-input and ip6-discover-neighbor output nodes for interfaces using their interface link up/down callback function is inefficient and has potential timing issue, as observed for bonded interface. Now both nodes will setup output interface sw_if_index in the the sw_if_index[VLIB_TX] field of current packet buffer and then use the interface-ouput node to tx the packet. One side effect is that vlib_node_add_next_with_slot() needs to be modified to allow the same output node-id to be put at the specified slot, even if another slot contain that same node-id already exist. This requirement is caused by BVI support where all loopback interfaces set up as BVIs will have the same output node-id being l2-input while, for output-interface node, the output slot must match the hw_if_index of the interface. Change-Id: I18bd1d4fe9bea047018796f7b8a4d4c20ee31d6e Signed-off-by: John Lo <loj@cisco.com>
2016-04-14Move autogenerated vnet files to config folderFlorin Coras1-0/+2
This cleans up vnet folder however it doesn't clean the existing autogenerated files. I'm not aware of any automated solution to achieve this without involving git. Change-Id: Ib29869e08e1d3bd87b7b54bc414f88bd9c632372 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-14Opaque index is not populated when ACL is configured. Fixed it.rangan1-1/+6
This is inline with ip6_classify.c Change-Id: Ib6e1f6fa3e4669e0a94e4ae2da48eacb240d192b Signed-off-by: rangan <rangan@cisco.com>
2016-04-13VHOST counters reversedShesha Sreenivasamurthy2-7/+10
VHOST counters are reversed. RX packet count are shown as TX and vise-versa in "show hardware" statistics. Change-Id: Ie1d41f1f0845edf495cdf34ca65466fc307940c6 Signed-off-by: Shesha Sreenivasamurthy <shesha@cisco.com>
2016-04-13Create macro for next_nodes used in lookup family of nodesDamjan Marion6-168/+44
This should help when adding new adjacency types Change-Id: I1832c6b7a80b6bc69ed83423a60511b7932f336f Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-12Creating a new CLI to create loopback interfaces to make the interfaceAlpesh Patel1-0/+6
creation cli consistent Change-Id: I72f074bb8c771511cb5203af6905adccefbb4197 Signed-off-by: Alpesh Patel <apatel9191@hotmail.com>
2016-04-12IP6 FIB: Micro optimization in lookupPierre Pfister1-4/+9
The mask is increasingly small. This saves a few cycles and becomes significant when there are many prefix lengths. Change-Id: Ibd0c9331f675697bb4e90e8ad617994f83edec9c Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-04-12Add unit test infrastructure for LISP protocolFilip Tehlar11-36/+644
Change-Id: I802700ad832de1dc6f4a1981e8985aa6e926c8ad Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-04-11Add a counter for unknown IPv6 hop-by-hop options.Yoann Desmouceaux1-2/+9
Change-Id: I3db82b71ae5e32e0f2230662497a05e57ddb6755 Signed-off-by: Yoann Desmouceaux <ydesmouc@cisco.com>
2016-04-11Fix possible infinite loop in IPv6 hop-by-hop header parsingYoann Desmouceaux1-0/+6
Unknown hop-by-hop options are currently not processed, which triggers an infinite loop due to the pointer not advancing further in the header. Change-Id: Idf9176090e042b17aac1baa25a6cb4beb8c199d8 Signed-off-by: Yoann Desmouceaux <ydesmouc@cisco.com>
2016-04-11Add vnet_rename_interface APISean Hope2-0/+41
Change-Id: I9a8e1ed310aa9a72644540856426c77f61f4b4bb Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
2016-04-11Bump DPDK 16.04 to RC4Damjan Marion1-0/+30
Change-Id: Ia9affeee54e860b6039d7ee0f411bd022b1dc76c Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-11Add option to delete af_packet (host) interfacesPeter Lei3-0/+90
Change-Id: Iab76951758ae9b9a99d679a223941a4b8c683078 Signed-off-by: Alpesh S. Patel <apatel9191@hotmail.com> Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-08fix uninitialized vars warnings with -OsBenoît Ganne3-5/+5
Change-Id: I15a16ba9751b6b612bac61a160b5da394ed2e15c Signed-off-by: Benoît Ganne <bganne@kalrayinc.com>
2016-04-08Add Rx and Tx statistics within nsh-vxlan-gpe nodeHongjun Ni3-26/+171
PatchSet2: Modify the code according to review comments. PatchSet3: modify sw_if_index1 in encap.c. Change-Id: Ic4d3ee19a0ba0fa10568e570a79a3cb85cfbc9ab Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-07Change encap-fib-id and decap-fib-id within create_nsh_vxlan_gpe_tunnel_commandHongjun Ni1-1/+1
Change-Id: Ied5275fcea21ae2e0b346931f9e2f520a73afd67 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-07Add key.pad=0 within vnet_nsh_vxlan_gpe_add_del_tunnelHongjun Ni1-0/+1
Change-Id: Ieed704ed0c3d747afc9836671f2ea9cc396ee09d Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-07Change key.src=a->dst.as_u32 within vnet_nsh_vxlan_gpe_add_del_tunnelHongjun Ni1-1/+1
Change-Id: Ica062e532d116cc1806d73f2fa85db89402928a4 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-04-07Enhance CLI/API Support for Bonded InterfaceJohn Lo6-31/+106
For interfaces which are slave links to a bounded interface, do not allow sub-interface creation nor interface state to be changed. Change "show interface" to display interface state as "bond-slave" for slave links to a bonded interface. Change "show hardware" to support a "bond" keyword and display slave links to a bonded interface. Change-Id: I4db3cae6985bcb1489ab16a07c72c5ee9b2f2dd3 Signed-off-by: John Lo <loj@cisco.com>
2016-04-07Classify node should pay attention to dynamically-added arcsDave Barach1-2/+2
Change-Id: I65bc03dbb5fedfc75f4ce7153eae116fe599730c Signed-off-by: Dave Barach <dbarach@cisco.com>
2016-04-06Fix ip4 udp encap length typeFlorin Coras1-2/+2
Change-Id: If666cda99a5fd92e904898ced40bcf2b5ac2d3a5 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-05host-interface admin down/up does not bring the interface upAlpesh Patel1-1/+9
Change-Id: I4c9ae5d88e885ccbc85b64cadc052563529c762d Signed-off-by: Alpesh Patel <apatel9191@hotmail.com>
2016-04-02Fix DPDK check in udp.hFlorin Coras1-2/+2
Change-Id: I4734b248f512e223703d234d28542257af1a8074 Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-02LISP GPE: initial CP commit and DP improvementsFlorin Coras19-705/+5136
Control Plane ------------- In essence, this introduces basic support for map-request/reply processing, the logic to generate and consume such messages, including SMRs, a control-plane backend, consisting of an eid-table, locator and locator-set tables, and CLI to interact with it. Naturally, we can now serialize/deserialize LISP specific types: addresses, locators, mappings, messages. An important caveat is that IPv6 support is not complete, both for EIDs and RLOCs. Functionally, the DP forwards all packets it can't handle to the CP (lisp_cp_lookup node) which takes care of obtaining a mapping for the packet's destination from a pre-configured map-resolver using the LISP protocol. The CP then caches this information and programs the DP such that all new packets with the same destination (or within the covering prefix) are encapsulated to one of the locators retrieved in the mapping. Ingress traffic-engineering is not yet supported. Data Plane ---------- First of all, to enable punting to the CP, when LISP GPE is turned on a default route that points to lisp_cp_lookup is now inserted. The DP also exposes an API the CP can use to program forwarding for a given mapping. This mainly consists in allocating a tunnel and programming the FIB such that all packets destined to the mapping's prefix are forwarded to a lisp-gpe encapsulating node. Another important change done for lisp forwarding is that both source and destination IP addresses are considered when encapsulating a packet. To this end, a new FIB/mtrie is introduced as a second stage, src lookup, post dst lookup. The latter is still done in the IP FIB but for source-dest entries, in the dest adjacency the lookup_next_index points to a lisp lookup node and the rewrite_header.sw_if_index points to the src FIB. This is read by the lisp lookup node which then walks the src mtrie, finds the associated adjacency, marks the buffer with the index and forwards the packet to the appropriate next node (typically, lisp-gpe-encap). Change-Id: Ibdf52fdc1f89311854621403ccdd66f90e2522fd Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-04-01Add option to link DPDK dynamicallyDamjan Marion2-77/+83
Change-Id: Ie2b47f9020c8260b199d141103318a0261e16832 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-01Add support for installing ipv4 routes via unresolved next hopDamjan Marion6-159/+393
Change-Id: I71f3ba0c8192fe0ac3b5b81fb1275b64ec02876a Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-03-29Add DPDK 16.04-rc2 supportDamjan Marion1-2/+2
Can be used by specifying DPDK_VERSION=16.04-rc2 in the make command line Change-Id: I657b44d7ca22f1ef57756e7703088020fab12bc6 Signed-off-by: Damjan Marion <damarion@cisco.com>