Commit Graph

158 Commits

Author SHA1 Message Date
Intel
a4a9fa474c kni: fix vhost build with kernel 3.7
Signed-off-by: Intel
2013-11-24 21:31:36 +01:00
Intel
c1c677a1ec kni: fix X540 init
KNI must not do hardware reset. But it was resetting X540 devices.

This bug was in the first KNI version
(commit 3fc5ca2f63).

Signed-off-by: Intel
2013-11-24 21:31:36 +01:00
Intel
8b401ff04f kni: add i354 support
Signed-off-by: Intel
2013-11-24 21:31:36 +01:00
Intel
a1ebecb0a9 ixgbe: add 82599 bypass support
Signed-off-by: Intel
2013-11-24 01:31:34 +01:00
Intel
4f29810e3c igb: add i354 support
Signed-off-by: Intel
2013-11-24 01:31:34 +01:00
Intel
38db3f7f50 e1000: update base driver
The base driver supports more NICs:
    - i210 flashless
    - i217
    - i218
    - i354

The new features are not automatically used by the DPDK PMD.

Signed-off-by: Intel
2013-11-24 01:31:34 +01:00
Intel
718bf2ae4d mem: remove hugepage file on unmap
Signed-off-by: Intel
2013-11-23 23:48:41 +01:00
Intel
ce1f9117b3 pci: fix sysfs parsing for uio
Signed-off-by: Intel
2013-11-23 23:48:21 +01:00
Intel
fed1491b40 eal: whitespace change
Signed-off-by: Intel
2013-11-20 10:27:00 +01:00
Intel
732a9d3035 eal: fix build with intrinsics and gcc < 4.8
Provide a fallback if the intrinsic __builtin_bswap16 is not available.

Signed-off-by: Intel
2013-11-20 10:27:00 +01:00
Intel
ac33030524 mk: avoid multiple inclusion of rte_config.h
Signed-off-by: Intel
2013-11-19 16:20:09 +01:00
Intel
dcae8715b8 version: 1.5.0-pre-release
Signed-off-by: Intel
2013-10-09 16:16:16 +02:00
Intel
b23ffbaa82 kni: add vhost backend
Attach to vhost-net as raw socket backend.

Signed-off-by: Intel
2013-10-09 16:16:15 +02:00
Intel
904d29a135 kni: move FIFO functions
Move FIFO functions into kni_fifo.h in order to reuse it for vhost.

Signed-off-by: Intel
2013-10-09 16:16:15 +02:00
Intel
9c61145ff6 kni: allow multiple threads
In this new mode, each KNI device has its own kernel thread for Rx.
The core affinity is configurable.

Signed-off-by: Intel
2013-10-09 16:16:15 +02:00
Intel
fbf895d44c kni: identify device by name
Some old API functions based on port_id are deprecated.

Signed-off-by: Intel
2013-10-09 16:16:15 +02:00
Intel
0b44a857c8 kni: generate random MAC address if needed
Replace the address based on "\0KNIxy" by a random MAC.

Signed-off-by: Intel
2013-10-09 16:16:15 +02:00
Intel
4583570637 kni: fix build with kernel 3.10
- The flags NETIF_F_HW_VLAN_* have been renamed to NETIF_F_HW_VLAN_CTAG_*.
See Linux commit f646968f8f7c624587de729115d802372b9063dd.

- The VLAN protocol must be specified.
See Linux commits 86a9bad3ab6b6f858fd4443b48738cabbb6d094c
and 80d5c3689b886308247da295a228a54df49a44f6.

Signed-off-by: Intel
2013-10-09 16:16:14 +02:00
Intel
47cda8c470 kni: clean logs
The debug is now disabled by default and can be enabled with
configuration option CONFIG_RTE_KNI_KO_DEBUG.

Signed-off-by: Intel
2013-10-09 16:16:14 +02:00
Intel
abc3630ed3 kni: minor changes
Signed-off-by: Intel
2013-10-09 16:16:14 +02:00
Intel
c1f86306a0 virtio: add new driver
This PMD can be used in a VM having virtio-net NIC.

Note: it is a different implementation than virtio-usermap extension.

Signed-off-by: Intel
2013-10-09 16:16:14 +02:00
Intel
7bd128eae2 eal: increase I/O privilege
Set I/O privilege to the highest level (3).
It is needed for virtio.

Signed-off-by: Intel
2013-10-09 16:16:14 +02:00
Intel
4c173302c3 pcap: add new driver
This PMD uses libpcap to send/receive packets to/from any NIC.
It can also read/write to/from a file.

Signed-off-by: Intel
2013-10-09 16:16:14 +02:00
Intel
e1e4017751 ring: add new driver
This PMD is a set of FIFOs using rte_ring without any NIC.
It can be used as a loopback.

Signed-off-by: Intel
2013-10-09 16:16:14 +02:00
Intel
2c502225c6 eal: introduce non-pci devices
This type of pseudo-device is needed for ring and pcap PMDs.
They are compatible with whitelist and are initialized in rte_eal_init().

Signed-off-by: Intel
2013-10-09 16:16:14 +02:00
Intel
5140eb165f eal: use pause only with SSE2
The pause instruction is part of SSE2 extensions.
Note that some compilers define _mm_pause as "rep; nop" instead of "pause".
For compatible processors, they are equivalent.

http://www.intel.com/Assets/PDF/manual/325383.pdf:
"
When executing a spin-wait loop, a Pentium 4 or Intel Xeon processor suffers
a severe performance penalty when exiting the loop because it detects a
possible memory order violation.
The PAUSE instruction provides a hint to the processor that the code sequence
is a spin-wait loop. The processor uses this hint to avoid the memory order
violation in most situations, which greatly improves processor performance.
"

Signed-off-by: Intel
2013-10-09 16:04:09 +02:00
Intel
cd5b32ee33 eal: allow to whitelist devices
The new option --use-device is a PCI whitelist.
It is the opposite to -b option.

Signed-off-by: Intel
2013-10-09 16:03:59 +02:00
Intel
5a55b9ac91 eal: allow to blacklist address without domain prefix
These 2 formats are now accepted:
    domain🚌device.function
           bus:device.function

Signed-off-by: Intel
2013-10-09 15:46:52 +02:00
Intel
0058a97b6a eal: rework CPU mask parsing
The CPU mask was limited to "unsigned long long".
The limit was removed and parsing/init is less loosy.

Signed-off-by: Intel
2013-10-09 15:46:52 +02:00
Intel
e740686611 eal: minor changes
Signed-off-by: Intel
2013-10-09 15:46:52 +02:00
Intel
e25e4d7ef1 mk: shared libraries
Allow to build shared libraries (.so) instead of static ones (.a).

Signed-off-by: Intel
2013-10-09 15:35:36 +02:00
Intel
1c1d4d7a92 doc: whitespace changes in licenses
Signed-off-by: Intel
2013-10-09 14:51:55 +02:00
Intel
cd449b929b update version to 1.4.1
Signed-off-by: Intel
2013-09-17 14:16:10 +02:00
Intel
9dc8cd6ef7 pci: check driver probe return code
Signed-off-by: Intel
2013-09-17 14:16:10 +02:00
Intel
096ff2e82d mem: rework huge page mapping for secondary process
Signed-off-by: Intel
2013-09-17 14:16:10 +02:00
Intel
03f6bced5b eal: use intrinsic function
Signed-off-by: Intel
2013-09-17 14:16:09 +02:00
Intel
8b7efc04a0 update version to 1.4.0
Signed-off-by: Intel
2013-09-17 14:16:09 +02:00
Intel
301d75046c kni: disable ETHTOOL_GRXRINGS
Signed-off-by: Intel
2013-09-17 14:16:08 +02:00
Intel
630ca10798 kni: fix build with kernel 3.8
- timecompare (used for hardware timestamping) has been removed.
(see Linux commit 65f8f9a1c1db831e5159e3e3e50912d1f214cd0c)
Simply disable HW_TIME_STAMP feature because it is not used by KNI.

- annotations __devinit and __devexit have been removed.
(see Linux commit 54b956b903607f8f8878754dd4352da6a54a1da2)

Signed-off-by: Intel
2013-09-17 14:16:08 +02:00
Intel
f2e7592c47 kni: fix multi-process support
Signed-off-by: Intel
2013-09-17 14:16:08 +02:00
Intel
b8539d50c5 pci: store numa_node per device
Signed-off-by: Intel
2013-09-17 14:09:22 +02:00
Intel
1a4afaef91 pci: configure SR-IOV with max_vfs
Signed-off-by: Intel
2013-09-17 14:09:22 +02:00
Julien Courtat
06bcaf50ca pci: fix probing blacklisted device with RTE_PCI_DRV_MULTIPLE flag
When blacklisting network adapters that share a PCI bus address with multiple
ports such as Mellanox ConnectX-3 (librte_pmd_mlx4), RTE applications
enter infinite loops while probing PCI devices.

This commit removes this probe on subsequent instances for blacklisted devices
that have RTE_PCI_DRV_MULTIPLE set.

Signed-off-by: Julien Courtat <julien.courtat@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2013-09-17 14:09:22 +02:00
Intel
a22f5ce8fc pci: don't unbind resources on exit
unbind operations must be done before starting eal application

Signed-off-by: Intel
2013-09-17 14:09:22 +02:00
Intel
0a45657a67 pci: rework interrupt handling
Signed-off-by: Intel <intel.com>
2013-09-17 14:09:22 +02:00
Stephen Hemminger
eee16c964c pci: support multiple PCI regions per device
Need to change PCI code to support multiple I/O regions on a single device.
Some devices like VMXNET3 have multiple PCI memory regions, and some
have none.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Intel
2013-09-17 14:09:22 +02:00
Intel
3743329a7e mem: remove RLIMIT_NOFILE update
Memory init won't try to increase its RLIMIT_NOFILE limit, this must be done
prior to starting it.

Signed-off-by: Intel
2013-09-17 14:09:22 +02:00
Intel
e987449c9f timer: prefer TSC to HPET
Signed-off-by: Intel
2013-09-17 14:09:22 +02:00
Damien Millescamps
6286101324 timer: option --vmware-tsc-map for VMware guest
The VMWare TSC mapping uses a hook to RDPMC to read the physical TSC
in the case of VMware ESXi.

Signed-off-by: Damien Millescamps <damien.millescamps@6wind.com>
Acked-by: Jean-Mickael Guerin <jmg@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>

Introduce new option --vmware-tsc-map, ignored if
CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT is not set.

Default is CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y.

if CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT is set:
    rte_rdtsc() selects at runtime between Vmware mapping of
    TSC or native TSC
else
    rte_rdtsc() always uses native rdtsc.

When running DPDK on VMware guest, enable --vmware-tsc-map to
read the physical TSC.
Caution: ESXi should pass monitor_control.pseudo_perfctr = TRUE
othewise it results in general protection fault.

Signed-off-by: Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
Acked-by: Vincent Jardin <vincent.jardin@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2013-09-17 14:09:22 +02:00
Intel
de3cfa2c98 sched: initial import
Signed-off-by: Intel
2013-09-17 14:09:21 +02:00
Intel
e6541fdec8 meter: initial import
Signed-off-by: Intel
2013-09-17 14:09:21 +02:00
Intel
d7937e2e3d power: initial import
Signed-off-by: Intel
2013-09-17 14:09:21 +02:00
Intel
5c510e13a9 lpm: add IPv6 support
Signed-off-by: Intel
2013-09-17 14:09:21 +02:00
Stephen Hemminger
2450abdf90 log: optimize log/panic with attribute cold
Both logging and calls to panic are never in the critical path.
Use the GCC attribute cold to mark these functions as cold,
which generates more optimised code.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Reviewed-by: Vincent Jardin <vincent.jardin@6wind.com>
2013-09-17 14:09:21 +02:00
Intel
494a02537f log: get full path as syslog id
It partially reverts commit 04210699ee.

Signed-off-by: Intel <intel.com>
2013-09-17 14:08:47 +02:00
Stephen Hemminger
04210699ee log: add ability to override syslog parameters
By default, DPDK based applications would only allow logging
to syslog as "rte", DAEMON; but for any production application more
control is desired to allow using actual application name and
overriding the facility.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Reviewed-by: Vincent Jardin <vincent.jardin@6wind.com>
2013-09-16 15:34:52 +02:00
Intel
99dde4b0e2 eal: cosmetic changes
Signed-off-by: Intel
2013-09-16 15:30:55 +02:00
Intel
bfdbde0c20 eal: add application usage hook
Signed-off-by: Intel
2013-09-16 15:30:52 +02:00
Intel
d6772940c0 eal: memory barriers use intrinsic functions
Signed-off-by: Intel
2013-09-16 15:19:04 +02:00
Intel
0fa75ccc24 eal: use intrinsic functions from compiler
RTE_FORCE_INTRINSICS makes it possible to force use of intrinsic
functions (defaults to n).

Signed-off-by: Intel
2013-09-16 15:19:03 +02:00
Intel
803b069703 lib: add rte_hexdump and remove duplicated code
Signed-off-by: Intel
2013-09-06 11:43:07 +02:00
Intel
a974564b34 lib: fix various compilation warnings
Signed-off-by: Intel
2013-09-06 11:43:07 +02:00
Intel
3b46fb77eb lib: 32/64-bit cleanups
Signed-off-by: Intel
2013-09-06 11:43:07 +02:00
Intel
26a0e1a4ee set version to 1.3.1
Signed-off-by: Intel
2013-07-25 16:07:53 +02:00
Intel
b6df9fc871 update copyright date to 2013
Signed-off-by: Intel
2013-07-25 16:07:52 +02:00
Intel
c662f30dbe lib: minor changes
Signed-off-by: Intel
2013-07-25 16:07:51 +02:00
Adrien Mazarguil
77d7a99fbe lib: fix non-C99 macros definitions in exported headers
The original definitions prevent external programs/libraries from compiling
without warnings when using these headers and -std=gnu99 (relaxed C99 mode).

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
Acked-by: Damien Millescamps <damien.millescamps@6wind.com>
2013-07-25 16:07:51 +02:00
Zijie Pan
cddaf87a1e lib: fix unused values
Fix warnings of type "Value stored to 'xxx' is never read".

Signed-off-by: Zijie Pan <zijie.pan@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2013-07-25 16:07:51 +02:00
Intel
d55d942fa9 kni: various changes
Signed-off-by: Intel
2013-07-25 16:07:51 +02:00
Intel
3b5d33a004 kni: disable IGB_DCA
Signed-off-by: Intel
2013-07-25 16:07:51 +02:00
Intel
9b3cd1cc0c kni: fix disabling
Signed-off-by: Intel
2013-07-25 16:07:51 +02:00
Ivan Boule
6402373548 kni: fix build with kernel < 2.6.34
Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2013-07-25 16:07:51 +02:00
Nicolas Dichtel
f454d1a9c9 igb_uio: fix build with kernel >= 3.8
__devinit has been removed in linux commit 54b956b903
("Remove __dev* markings from init.h", 3.8-rc4).

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2013-07-25 16:07:51 +02:00
Adrien Mazarguil
66daf76700 pci: allow drivers to be bound several times to the same PCI device
Drivers with the flag RTE_PCI_DRV_MULTIPLE enabled will be bound several
times to the same device until they return an error.

These drivers must internally keep track of each device state in order for
this to work reliably.

This flag currently required for Ethernet adapters with several physical
ports but a single address on the PCI bus.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
Acked-by: Damien Millescamps <damien.millescamps@6wind.com>
2013-07-25 16:07:51 +02:00
Intel
dd61b34d58 mem: error if requesting more segments than MAX_MEMSEG
Signed-off-by: Intel
2013-07-25 16:07:51 +02:00
Thomas Monjalon
8885118f82 eal: fix access to huge page with high address
The returned value of lseek is a virtual address
which can be different from the offset.
Indeed, if the return address has a 64-bit canonical form,
the 16 higher bits are all 1 if bit 47 is 1.

So the check was wrong. It is better to test against an error value.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Damien Millescamps <damien.millescamps@6wind.com>
2013-07-25 16:07:50 +02:00
Intel
a366c813f7 eal: add bsf32
Signed-off-by: Intel
2013-07-25 16:07:50 +02:00
Intel
0100a515b5 pmac: integration without lib
This library could be used for pattern matching and ACL.
Code of librte_pmac is not released as Open Source.

Signed-off-by: Intel
2013-07-25 16:07:50 +02:00
Intel
594f3c1cea set version to 1.3.0
Signed-off-by: Intel
2013-07-25 16:07:45 +02:00
Intel
aa4fc14d2c ixgbe: update base driver
Signed-off-by: Intel
2013-07-25 15:40:56 +02:00
Intel
8a5eeb9c05 e1000: update base driver
Signed-off-by: Intel
2013-07-25 15:23:28 +02:00
Intel
d6537e6a74 pci: make it possible to keep devices bound to uio
Binding code has been refactored as well.

Signed-off-by: Intel
2013-07-25 15:23:28 +02:00
Damien Millescamps
acabcb6c3f pci: fix uio driver dependency
Allow to run without igb_uio if probed devices don't require it.

The condition for exiting with an error is:
 - Tested driver is needed by a probed device
 AND
 - Tested driver needs igb_uio

Signed-off-by: Damien Millescamps <damien.millescamps@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2013-07-25 15:23:28 +02:00
Adrien Mazarguil
5e9f6d1340 pci: reference driver structure for each device
Add a driver reference (if available) to every PCI devices,
even when blacklisted. This information is made available in the global
device_list variable so users know which network devices are managed or
ignored.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
Acked-by: Damien Millescamps <damien.millescamps@6wind.com>
2013-07-25 15:23:28 +02:00
Intel
fb98e84fc1 igb_uio: allow to configure interrupt mode
Signed-off-by: Intel
2013-07-25 15:23:28 +02:00
Intel
13dc56a6fe igb_uio: various updates
Signed-off-by: Intel
2013-07-25 15:23:27 +02:00
Intel
1f1047608d igb_uio: GPL copyright
Signed-off-by: Intel
2013-07-25 15:23:27 +02:00
Intel
2a5c356e17 memory: stats for malloc
Signed-off-by: Intel
2013-07-25 15:23:27 +02:00
Intel
766b12e538 memory: malloc now supports multi process
Signed-off-by: Intel
2013-07-25 15:23:27 +02:00
Intel
dec5e73d78 memory: add numa-awareness to malloc
Signed-off-by: Intel
2013-07-25 15:23:27 +02:00
Intel
916e4f4f4e memory: fix for multi process support
Signed-off-by: Intel
2013-07-25 15:23:27 +02:00
Intel
b6a468ad41 memory: add --socket-mem option
On NUMA systems, --socket-mem makes it possible to select the node where
allocations will go.

Signed-off-by: Intel
2013-07-25 15:23:27 +02:00
Intel
af89e7f85b eal: rework cpu information discovery
Signed-off-by: Intel
2013-07-25 15:23:26 +02:00
Intel
a9fb536570 eal: minor changes
Signed-off-by: Intel
2013-07-25 15:17:47 +02:00
Intel
277ff5bb75 eal: always check CPU support at runtime
Signed-off-by: Intel
2013-07-25 15:17:47 +02:00
Intel
670f23337a eal: GPL copyright for PCI ids
Signed-off-by: Intel
2013-07-25 15:01:58 +02:00
Intel
5e2d5869b3 log: fix multi process support
Signed-off-by: Intel
2013-07-25 15:01:57 +02:00
Intel
ceda35ebe8 log: better fix on history buffer overflow
Signed-off-by: Intel
2013-07-25 15:01:57 +02:00
Dongsu Han
94bc87febf log: fix history buffer overflow
The '\0' is written outside the bounds of the log buffer, which can
result in memory corruption or display issues with log messages.

Use a new constant LOG_BUF_SIZE to store the effective size of the
buffer in struct log_history.

Signed-off-by: Dongsu Han <dongsuh@cs.cmu.edu>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
2013-07-25 15:01:57 +02:00
Intel
30a37273c1 lib: update tailq api
Signed-off-by: Intel
2013-07-25 15:01:57 +02:00