This patch introduces standard command line 'set interface mtu' for setting the MTU
for tap devices. It allows user to set the mtu in between 68 to 65535 bytes
aligned to what linux kernel supports for tun/tap devices.
Right now tapcli set the same MTU size for each tap interface. But it should be set
and configure to per interface rather than per tap instance.
Change-Id: I81b7f3ad95ca56d585907ff8f51d9935a428e01b
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
For using clang as a compiler it is enough
to specify CC=clang in the make command line
Change-Id: I06f1c1d418b68768f8119de5bdc8748c51f90c02
Signed-off-by: Damjan Marion <damarion@cisco.com>
This patch is more or less a port of I71f3ba0c8192 to IPv6.
In practice it allows creating a route via a neighbor which is not resolved yet.
It also adds static flag to IPv6 neighbor entries.
And as Damjan suggested, it formalizes ip46_address_t by using
the IPv4 embedded IPv6 address format.
Change-Id: Ifa7328a03380ea4ff118b7ca4897b4ab23a3e57c
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
DPDK 16.04 introduced new config parameter RTE_ARCH_X86
which was missing in the dpdk/Makefile
That caused issues with virtio devices on older kernels
(observed on 3.13.0).
This patch changes the source of generated config so
it will also include all defines in config/defconfig_TARGET
file.
Change-Id: Idc6ccbef1d01da84235281ea1078c081846446de
Signed-off-by: Damjan Marion <damarion@cisco.com>
Enabling these features breaks L4 traffic when a VHOST
interface is bridged with a hardware interface which
does not support such offloading. (Eg: enic)
Change-Id: Ife3d292a8860eb60b82f1473e2d0dd7329e51d5e
Signed-off-by: Shesha Sreenivasamurthy <shesha@cisco.com>
In order to make it easier for folks who have existing
Centos or Ubuntu boxes to utilize the same
'Getting started' scripting that is used in Vagrant,
as well as enable us to use that scripting in CI,
broke up bootstrap.sh into
update.sh - Things like apt-get update
build.sh - Install any dependencies and build vpp
clearinterfaces.sh - Clean off any non-default gateway
interfaces. Used by vagrant.
run.sh - Start vpp as a service on the box.
A user (or CI) just wanting to get going and build
on an existing Ubuntu or Centos image (ie, not via
vagrant) can simply run
build.sh
Change-Id: I8f19342f163cad07c6c05def943a5fb8e394b879
Signed-off-by: Ed Warnicke <eaw@cisco.com>
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>
- 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>
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>
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>
vpp_restart solves the problem of restarting vpp and not exiting until
the new vpp instance is sufficiently established to allow immediate
binary API connections. The point is to avoid using arbitrary "sleep
N" commands e.g. in CSIT shell scripts.
We send SIGTERM to the current vpp process, and expect / depend on the
process-monitor du jour to remove the vpp-api shared-memory segment.
vpp_restart exits w/ status 0 if all is well, non-zero upon failure.
In trying to make vpp_restart reliable, we discovered a
recently-introduced heap corruption bug in .../dpdk/init.c, which
caused vpp to crash on startup once every 20 times on a particular
rig.
If possible, we should check /var/log/syslog for evidence of
unexpected multiple restarts during regression-testing.
Change-Id: Ic48c74b1a94a4368066ba2e326d4b12d51192088
Signed-off-by: Dave Barach <dbarach@cisco.com>
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>
We allocate 512M of memory on each available cpu socket
by default so this is not needed anymore in startup.conf
Change-Id: Ib28b25df8d6722777a006aaddd1d56f21ab7b58a
Signed-off-by: Damjan Marion <damarion@cisco.com>
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>
(to be consistent with other delete interface commands)
Change-Id: I41f63cc5b11d9fa9489edc54b17a4d857b711b66
Signed-off-by: Alpesh S. Patel <apatel9191@hotmail.com>
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>
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>
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>
- 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>
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>
The scheme is unused, and never to be used again; it was a bad idea in
the first place.
Change-Id: I1479a1fa9191e0374e00f7326545d216c3a11e32
Signed-off-by: Dave Barach <dave@barachs.net>
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>