Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solarflare #404

Closed
wants to merge 117 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
e92f7b2
initial attempt to make a IB header file that ffi.cdefs can consume
hanshuebner Jun 16, 2014
7d5ad65
commit mellanox related work
hanshuebner Jun 24, 2014
10f684b
add solarflare stuff
hanshuebner Jun 24, 2014
fba1c52
sending and receiving now
hanshuebner Jun 25, 2014
a1cb67a
try some tweaks to prevent rx problems
hanshuebner Jun 26, 2014
b08e069
remove unneeded case
hanshuebner Jun 26, 2014
865ba2c
work on receiver reliability / problem determination
hanshuebner Jun 26, 2014
6818bbd
add device-interface.md describing the internal device API
hanshuebner Jul 14, 2014
c829307
tune number of buffers, validate data when it is received
hanshuebner Jul 14, 2014
6b0c017
improve error analysis
hanshuebner Jul 19, 2014
42f2d5c
limit number of receive error details reported
hanshuebner Jul 20, 2014
6c8e7cb
receiver changes that seem to break things reliably
hanshuebner Jul 20, 2014
efff6ce
run.sh changes that seem to break things
hanshuebner Jul 20, 2014
603a084
send.c changes that seem to break things
hanshuebner Jul 20, 2014
3a9c3cf
clean up a little before turning to work on luajit stuff
hanshuebner Jul 20, 2014
805b395
clean out test programs, create solarflare lua stuff
hanshuebner Jul 20, 2014
4b8ed5f
reindent
hanshuebner Jul 20, 2014
83d6e7d
can open driver and ef_vi interface
hanshuebner Jul 20, 2014
33c572a
polish and SolarFlareNic make into proper class
hanshuebner Jul 20, 2014
4e347ef
add memory region related stuff
hanshuebner Jul 20, 2014
7d71458
invoke test function
hanshuebner Jul 20, 2014
93fc411
refactor for short lines
hanshuebner Jul 20, 2014
c063055
begin memory management related work
hanshuebner Jul 20, 2014
cf367e1
callback to drivers for memory registration
hanshuebner Jul 26, 2014
a4704e7
set up filter
hanshuebner Jul 26, 2014
5825036
can receive packets (and discard them)
hanshuebner Jul 26, 2014
d972937
can breathe a bit
hanshuebner Jul 26, 2014
85217ac
compress stats to one line
hanshuebner Jul 27, 2014
d457531
use link names matching configuration
hanshuebner Jul 27, 2014
0269a74
can sink packets
hanshuebner Jul 27, 2014
95e96f1
add DEBUG variable that can be set to enable -g and such when compiling
hanshuebner Jul 27, 2014
7547710
transmit packets
hanshuebner Jul 27, 2014
971883d
remove unused posix_memalign declaraction
hanshuebner Jul 27, 2014
c47ba69
comments
hanshuebner Jul 27, 2014
6135d0b
beauty treatment
hanshuebner Jul 27, 2014
334c908
remove extra output
hanshuebner Jul 27, 2014
c877b09
Handle transmissions of packets with multiple iovs correctly
hanshuebner Jul 27, 2014
957bf0b
poll 256 events at once
hanshuebner Aug 13, 2014
36a918a
try some optimizations
hanshuebner Aug 13, 2014
f9b3e08
more fine-grained statistics
hanshuebner Aug 13, 2014
f217ac7
add pci id for SFN61xx adapter
hanshuebner Aug 13, 2014
a876613
remove memory registration code, as it is not needed
hanshuebner Aug 14, 2014
136f1f9
don't cache ffi union access into local
hanshuebner Aug 14, 2014
fad4143
add jumbo packet support
hanshuebner Aug 14, 2014
be697fc
conditionalize assertion check
hanshuebner Aug 14, 2014
8314187
remove another local variable
hanshuebner Aug 14, 2014
0604696
check for required rx flush more frequently
hanshuebner Aug 14, 2014
c02b75a
optimize to about 3mpps by making locals into globals
hanshuebner Aug 14, 2014
0422a29
document myapp.stop()
hanshuebner Aug 19, 2014
0b3699a
implement stop() method
hanshuebner Aug 19, 2014
1a8acdb
cache bit.band into local variable for performance reasons
hanshuebner Aug 19, 2014
4a0cdbe
fix typo in README
hanshuebner Aug 20, 2014
683d273
remove dislocated test code
hanshuebner Aug 23, 2014
49a51a3
add set_rx_buffer_freelist method and allocation code
hanshuebner Aug 23, 2014
2da6642
adapt conventional naming
hanshuebner Aug 23, 2014
a165521
0 is not false in lua either
hanshuebner Aug 23, 2014
2cb8036
set up mac addresses in packet so that it is actually received + more…
hanshuebner Aug 23, 2014
a223570
print pciaddr of devices used
hanshuebner Aug 24, 2014
382266c
unbind network interface in intel driver (only)
hanshuebner Aug 24, 2014
774588b
Make nfv application detect NIC driver
hanshuebner Aug 24, 2014
2006034
use a different qemu branch (just guessing right now)
hanshuebner Aug 24, 2014
499f45e
add new QEMU_LOG0/1 variables for qemu logging
hanshuebner Aug 24, 2014
efd0335
re-add actually waiting for child processes to terminate
hanshuebner Aug 24, 2014
6c3e43b
Merge remote-tracking branch 'origin/master' into solarflare
hanshuebner Aug 24, 2014
a4fd397
remove logging code as that does not work
hanshuebner Aug 24, 2014
20736ec
add tracing option
hanshuebner Aug 24, 2014
ad2120e
Merge branch 'master' of github.com:SnabbCo/snabbswitch into solarflare
hanshuebner Aug 30, 2014
8741be6
remove debug print statement
hanshuebner Aug 30, 2014
b62c366
add filter for ethernet broadcast packets
hanshuebner Aug 30, 2014
3e1cb50
optionally read local mac address from env var SF_MAC
hanshuebner Aug 31, 2014
2096ab2
ignore empty environment variables
hanshuebner Aug 31, 2014
a4bda81
flush output after initialization
hanshuebner Aug 31, 2014
def1c7b
explicitly load solarflare driver
hanshuebner Aug 31, 2014
e3deca4
fix typo
hanshuebner Aug 31, 2014
a252a2a
clean up and support solarflare in nfv script
hanshuebner Aug 31, 2014
e3da2be
accept MAC address from configuration
hanshuebner Sep 7, 2014
49db6fa
probe driver instead of using intel driver unconditionally
hanshuebner Sep 7, 2014
3566299
Merge branch 'master' of github.com:SnabbCo/snabbswitch into solarflare
hanshuebner Sep 7, 2014
3fb28a1
make snabbfv-traffic work with SolarFlare NIC + test
hanshuebner Sep 8, 2014
c97ea62
Merge remote-tracking branch 'origin/master' into solarflare
hanshuebner Sep 13, 2014
dab5265
stop using C bitfield access in SolarFlare driver
hanshuebner Sep 14, 2014
6335c2c
explicitly pass self when calling member functions
hanshuebner Sep 14, 2014
949be89
remove timer.init() call
hanshuebner Sep 14, 2014
743d107
revert to using unions and uints of proper length in ef_event
hanshuebner Sep 14, 2014
bbd0b35
move locals back into inner scope
hanshuebner Sep 14, 2014
05695ba
remove timer.init() call from snabbnfv-traffic
hanshuebner Sep 30, 2014
23e59ba
Merge branch 'master' of github.com:SnabbCo/snabbswitch into solarflare
hanshuebner Sep 30, 2014
19aaf08
use EF_PD_VPORT when allocating PD
hanshuebner Oct 1, 2014
4d2a0c8
manually merge openonload header file changes
hanshuebner Oct 1, 2014
2ff197a
use explicit multicast filtering
hanshuebner Oct 1, 2014
addf1bf
adapt solarflare basic benchmark to api changes
hanshuebner Oct 1, 2014
bc117d8
Merge remote-tracking branch 'origin/master' into solarflare
hanshuebner Nov 23, 2014
3ec0c7f
Merge remote-tracking branch 'origin/master' into solarflare
hanshuebner Jan 4, 2015
bd57738
adapt to changes in openonload-20141120-vswitch
hanshuebner Jan 4, 2015
b25b6a2
adapt to new VPORT API
hanshuebner Jan 4, 2015
342a171
SolarFlare VLAN configuration through neutron config
hanshuebner Jan 10, 2015
0292da1
add c-based polling
hanshuebner Jan 11, 2015
8892b9e
remove debug output
hanshuebner Jan 17, 2015
ec1cbf4
Minimize RX buffer length
hanshuebner Feb 8, 2015
25401fb
Merge remote-tracking branch 'origin/master' into solarflare
hanshuebner Feb 8, 2015
db066ac
Merge remote-tracking branch 'origin/master' into solarflare
hanshuebner Feb 14, 2015
e729d01
port solarflare driver to straightlines
hanshuebner Feb 15, 2015
8bf4461
minor cosmetic changes
hanshuebner Feb 15, 2015
71ce15c
refactor
hanshuebner Feb 15, 2015
70c419e
make packet size a command-line parameter
hanshuebner Feb 15, 2015
4329e91
report throughput at end of test
hanshuebner Feb 15, 2015
241a105
solarflare: Store packets in FFI array instead of table
lukego Feb 18, 2015
e974c68
solarflare: Sink FFI pointer allocations in pull()
lukego Feb 18, 2015
8dc533e
Merge pull request #1 from lukego/solarflare-noalloc
hanshuebner Feb 18, 2015
b905734
Merge branch 'master' of github.com:SnabbCo/snabbswitch into solarflare
hanshuebner Mar 8, 2015
ccfd6d7
Merge branch 'solarflare' of github.com:hanshuebner/snabbswitch into …
hanshuebner Mar 8, 2015
4f0d42a
Update solarflare test to new run structure
hanshuebner Mar 8, 2015
5686ffb
Merge branch 'master' of github.com:SnabbCo/snabbswitch into solarflare
hanshuebner Mar 14, 2015
1e8aad0
Manually clean up common.sh
hanshuebner Mar 14, 2015
f24fc79
Change variable name according to master changes
hanshuebner Mar 15, 2015
516b061
Remove extra call to unbind_device_from_linux
hanshuebner Mar 15, 2015
086e409
Explicit ef_vi version check
hanshuebner Mar 15, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/Makefile
Expand Up @@ -69,7 +69,7 @@ snabb: $(LUAOBJ) $(HOBJ) $(COBJ) $(ASMOBJ) $(INCOBJ) $(LUAJIT_A)
exit 1; \
fi
$(E) "LINK $@"
$(Q) gcc -Wl,--no-as-needed -Wl,-E -Werror -Wall -o $@ $^ \
$(Q) gcc $(DEBUG) -Wl,--no-as-needed -Wl,-E -Werror -Wall -o $@ $^ \
../deps/luajit/src/libluajit.a \
-lrt -lc -ldl -lm -lpthread
@echo -n "BINARY "
Expand Down Expand Up @@ -133,7 +133,7 @@ $(LUAOBJ): obj/%_lua.o: %.lua Makefile | $(OBJDIR)

$(COBJ): obj/%_c.o: %.c $(CHDR) Makefile | $(OBJDIR)
$(E) "C $@"
$(Q) gcc -Wl,-E -I ../deps/luajit/src -I . -include $(CURDIR)/../gcc-preinclude.h -c -Wall -Werror -o $@ $<
$(Q) gcc $(DEBUG) -Wl,-E -I ../deps/luajit/src -I . -include $(CURDIR)/../gcc-preinclude.h -c -Wall -Werror -o $@ $<

$(HOBJ): obj/%_h.o: %.h Makefile | $(OBJDIR)
$(E) "H $@"
Expand All @@ -145,7 +145,7 @@ $(HOBJ): obj/%_h.o: %.h Makefile | $(OBJDIR)
$(ASMOBJ): obj/%_dasc.o: %.dasc $(CHDR) Makefile | $(OBJDIR)
$(E) "ASM $@"
$(Q) luajit ../deps/luajit/dynasm/dynasm.lua -o $@.gen $<
$(Q) gcc -Wl,-E -I ../deps/luajit/src -I . -I ../deps/luajit -c -Wall -Werror -x c -o $@ $@.gen
$(Q) gcc $(DEBUG) -Wl,-E -I ../deps/luajit/src -I . -I ../deps/luajit -c -Wall -Werror -x c -o $@ $@.gen

$(JITOBJS): obj/jit_%.o: ../deps/luajit/src/jit/%.lua $(OBJDIR)
$(E) "LUA $@"
Expand Down Expand Up @@ -174,7 +174,7 @@ obj/jit_tprof.o: extra/tprof.lua | $(OBJDIR)

obj/jit_vmprof.o: extra/vmprof.c | $(OBJDIR)
$(E) "C $@"
$(Q) gcc -Wl,-E -O2 -I ../deps/luajit/src -c -Wall -Werror -o $@ $<
$(Q) gcc $(DEBUG) -Wl,-E -O2 -I ../deps/luajit/src -c -Wall -Werror -o $@ $<

book: doc/snabbswitch.pdf doc/snabbswitch.html doc/snabbswitch.epub

Expand Down
2 changes: 2 additions & 0 deletions src/apps/intel/intel_app.lua
Expand Up @@ -11,6 +11,8 @@ local receive, transmit, full, empty = link.receive, link.transmit, link.full, l
Intel82599 = {}
Intel82599.__index = Intel82599

driver = Intel82599

-- table pciaddr => {pf, vflist}
local devices = {}

Expand Down
43 changes: 43 additions & 0 deletions src/apps/solarflare/COPYRIGHT
@@ -0,0 +1,43 @@
The header files in this directory are derived from the SolarFlare
openonload distribution which comes with the following copyright
notice:

/*
** Copyright 2005-2014 Solarflare Communications Inc.
** 7505 Irvine Center Drive, Irvine, CA 92618, USA
** Copyright 2002-2005 Level 5 Networks Inc.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of version 2.1 of the GNU Lesser General Public
** License as published by the Free Software Foundation.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Lesser General Public License for more details.
*/

/****************************************************************************
* Copyright 2002-2005: Level 5 Networks Inc.
* Copyright 2005-2008: Solarflare Communications Inc,
* 9501 Jeronimo Road, Suite 250,
* Irvine, CA 92618, USA
*
* Maintained by Solarflare Communications
* <linux-xen-drivers@solarflare.com>
* <onload-dev@solarflare.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation, incorporated herein by reference.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
****************************************************************************
*/