-
Notifications
You must be signed in to change notification settings - Fork 70
PFqOmatic
Nicola Bonelli edited this page May 12, 2014
·
16 revisions
Pfq-omatic is a Haskell script that can be used to compile source codes of network device drivers and obtain versions specialized for PFQ. By overloading symbols at compile time, pfq-omatic enables drivers to:
- exploit the PFQ socket buffer allocator.
- achieve performance improvements (e.g. linespeed of Intel 10Gbit adapters).
- send packets directly to PFQ.
PFQ is then interposed between the network device driver and the Linux kernel. In this vein, functional computations can act as a firewall, router, switch, and so forth. On per-packet-basis they can dispatch packets to sockets, forward them to network devices or send them to the Linux kernel (hybrid SDN/SDM).
root # cd ixbge/src
root # pfq-omatic
[PFQ] pfq-omatic: v3.0
[PFQ] using /opt/PFQ/kernel/Module.symvers file (most recent)
[PFQ] ./ixgbe_main.c is already patched :)
[PFQ] compiling: make -j6...
make -C /lib/modules/3.12-1-amd64/build SUBDIRS=/opt/ixgbe-3.21.2/src modules
make[1]: Entering directory `/usr/src/linux-headers-3.12-1-amd64'
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_main.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_common.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_api.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_param.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_lib.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_ethtool.o
CC [M] /opt/ixgbe-3.21.2/src/kcompat.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_82598.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_82599.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_x540.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_sriov.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_mbx.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_dcb.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_dcb_82598.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_dcb_82599.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_sysfs.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_procfs.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_phy.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_dcb_nl.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_fcoe.o
CC [M] /opt/ixgbe-3.21.2/src/ixgbe_debugfs.o
LD [M] /opt/ixgbe-3.21.2/src/ixgbe.o
Building modules, stage 2.
MODPOST 1 modules
CC /opt/ixgbe-3.21.2/src/ixgbe.mod.o
LD [M] /opt/ixgbe-3.21.2/src/ixgbe.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.12-1-amd64'
[PFQ] done.