Commit Graph

264 Commits (3f59e4d37dd8ea5c98a3e18bbca8129715048134)

Author SHA1 Message Date
logwang 8c317b2231 Fix #107: some invalid usages of kqueue in `ff_epoll`.
1.Both EVFILT_READ and EVFILT_WRITE are values but not flags. It needs to check whether it is equal but not to do logic and.

2.If the read direction of the socket has shutdown, then the filter also sets EV_EOF in `flags`, and returns the socket error (if any) in `fflags`.
2017-11-27 18:39:34 +08:00
logwang e76966dcf1 Roadmap: to support IPV6. 2017-11-27 14:03:46 +08:00
logwang c598cee34c
Merge pull request #103 from tigerjibo/master
ipfw: should init dpdk before all malloc
2017-11-21 14:57:35 +08:00
Ji Bo 896dcc2b9a ipfw: should init dpdk before all malloc
Signed-off-by: Ji Bo <jibo@xdja.com>
2017-11-21 14:32:00 +08:00
logwang 595de2db4b Release-1.11 tag. 2017-11-21 11:42:39 +08:00
logwang c7fe235229 Example: keep run when accept failed. 2017-11-21 11:42:09 +08:00
logwang f17ba62bb6 Use general protocol header length in protocol filter. 2017-11-21 11:20:14 +08:00
logwang 35a813994b Micro_thread: convert encoding of source files and remove chinese comments. 2017-11-20 22:39:00 +08:00
logwang ef39c58b67 Fix #100: tcp anomaly when TSO is enabled.
1.Fix the wrong ip header length and tcp header length.
2.Recalculate the pseudo header checksum and set it to tcp header.
2017-11-20 17:07:10 +08:00
logwang ee61971c95 Nginx: fix that worker may crash when reload or recv signals. 2017-11-20 17:06:02 +08:00
whl739 b37139ca32 Add tool: ipfw.
ipfw -- interface for firewall, packet scheduler, NAT and so on.

It is comprised of several components: the kernel firewall filter rule processor and its integrated packet accounting facility, the logging facility, NAT, a forward facility, a bridge facility, and an ipstealth facility.
Note that the `dummynet` traffic shaper is not merged.
2017-11-14 16:44:32 +08:00
logwang 0b8e61ab4d Fix bug: dead loop when destroy a network interface. 2017-11-10 18:52:10 +08:00
logwang 8966cc7c16
Merge pull request #98 from xujiaxuan/master
Fix bug: process input packets error if packet fragment
2017-11-10 14:41:09 +08:00
Xu Jiaxuan 4b3bcd46c0 Fix bug: process input packets error if packet fragment
modified:   lib/ff_dpdk_if.c
2017-11-10 13:58:32 +08:00
logwang eb5902d97d Api: add packet dispatch callback function register.
In some cases, for example, packets are forwarded to your server through
IP tunnel, and they will be received on fixed queues, since RSS doesn't support tunnels.So we need to dispatch them again.

With this commit, we can implement a dispatcher callback function and regist
it, packets retrieved from rx queue will be dispatched again according to
the dispatcher result.
2017-11-09 21:22:13 +08:00
logwang c855fce65e Configuration: set net.link.ether.inet.maxhold(number of packets to hold per ARP entry) to 5.
Since maxhold's default value is 1, it may not be enough for some
applicatins, so increase it to the value of
net.link.ether.inet.maxtries(ARP resolution attempts before returning
error).
2017-11-08 17:49:51 +08:00
logwang 555c848918 Ngctl: support interactive mode. 2017-11-01 18:53:07 +08:00
logwang 3b2bd0f641 Add tool: ngctl.
ngctl -- netgraph control utility.
The ngctl utility creates a new netgraph node of type socket which can be used to issue netgraph commands.
2017-11-01 17:38:22 +08:00
logwang bffb72754c Misc: make example in travis-ci and fix return value of `ff_connect`. 2017-10-31 11:08:04 +08:00
logwang a416aa0841 FreeBSD misc: add a macro to turn on NETGRAPH option and return error when call sleep 2017-10-27 18:08:44 +08:00
logwang c36e692a8e Use `KMOD_SRCS` to pass extra kernel module sourcs.
For example, if you have an extra FreeBSD kernel module, and want to
compile it into F-Stack, you can do it like this:
```
cd f-stack/lib
export "KMOD_SRCS=/your/kmod/path/a.c /your/kmod/path/b.c"
export "CONF_CFLAGS=-I/your/kmod/path"
make
```
2017-10-25 15:26:01 +08:00
logwang 20a9422e03 Fix bug: undefined refrence to `fueword`. 2017-10-25 15:16:28 +08:00
logwang a1fd9364a9 FreeBSD: add module netgraph. 2017-10-25 14:38:15 +08:00
logwang 20be49f608 Nginx: hijack `read` and `write`.
Since libssl calls `read` and `write` when SSL handshake, we must
hijack these two functions, so that the network IO can pass through
f-stack.
2017-09-26 17:00:20 +08:00
logwang b7d857a29d Merge pull request #80 from yuyang0/master
Fix #79: less arp ring.
2017-09-25 12:13:48 +08:00
YuYang 257bb980b4 less arp ring 2017-09-25 12:05:30 +08:00
logwang 1c388a5257 Update f-stack.conf of nginx.
Close #81.
2017-09-25 12:03:26 +08:00
logwang 85aab0a645 Optimize tx. 2017-09-22 17:35:50 +08:00
logwang 28b0198a41 Merge branch 'master' of https://github.com/F-Stack/f-stack 2017-09-21 15:06:12 +08:00
logwang 8755b2de54 Fix bug: freebsd sysctl config not work. 2017-09-21 15:03:05 +08:00
logwang 6dbdb4c147 Fix buf: freebsd sysctl config not work. 2017-09-21 14:57:01 +08:00
logwang 3b14d13555 Merge pull request #78 from yuyang0/multiple-nic
Multiple nic enhancement.
2017-09-21 13:55:17 +08:00
YuYang 80a6164c5c multiple NIC support
In current implementation, cores and ports are one to one mapped, this
PR allowed user to specify the core list used to handle single port. for
example cores 1,2,3 handle port 0 and cores 4,5,6 handle port 1.

- Add `port_list` config to dpdk section (used to specify the enabled port list)

- Add `lcore_list` config to port section(used to specify the core list mapped to that port)

- Delete `nb_ports` config in dpdk section

- Delete `port_mask` config in dpdk section
2017-09-21 12:33:25 +08:00
logwang 1a527102bc Example: exit when ff_api failed 2017-09-14 18:57:37 +08:00
logwang 8cf1d457cb Optimize makefile 2017-09-14 15:25:07 +08:00
logwang e81d492e9b travis-ci: make tools 2017-09-11 11:07:09 +08:00
logwang d181a8f5a3 Update docs 2017-09-11 11:04:19 +08:00
logwang 0f726c99c2 enable travis ci from yuyang0 2017-09-11 11:02:26 +08:00
logwang 1cd6edf41e Fix endless loop when connect to a peer if all ports are completely used. 2017-09-11 11:01:18 +08:00
Andy 85eb2ae96a 🐛 tools should init dpdk before all malloc for the same 'virtual memory address' 2017-09-07 14:27:27 -04:00
logwang 47da7658f2 Merge pull request #72 from yuyang0/cflags
use CONF_CFLAGS to pass extra CFLAGS
2017-09-06 13:40:28 +08:00
logwang 0fafa38d7e Merge pull request #71 from yuyang0/bc
notify user to install bc
2017-09-06 12:18:08 +08:00
YuYang 34b2fad45f use CONF_CFLAGS to pass extra CLFAGS 2017-09-06 10:26:12 +08:00
YuYang 06399ef331 notify user to install bc 2017-09-06 10:25:12 +08:00
logwang 63fb3d1fbf Fix nginx coredump on virtio vm and support kni.
1.close #67.
2.replace ff_primary process to primary worker process(the first one to
start and the last one to exit).
3.it's not graceful to reload.
2017-09-05 20:24:51 +08:00
logwang 1f5381c9ea Fix compiling errors of tools. 2017-09-05 14:30:42 +08:00
logwang 7787718ee8 Merge pull request #69 from amjy/master
add lvs toa option
2017-09-05 13:30:12 +08:00
Andy 08dba0109c add lvs toa option 2017-09-04 23:19:12 -04:00
logwang ea0a6a4f78 Merge branch 'master' of https://github.com/F-Stack/f-stack 2017-09-04 16:32:40 +08:00
logwang 30a6a05765 Update Launch_F-Stack_on_AWS_EC2_in_one_minute. 2017-09-04 16:31:41 +08:00