Commit Graph

382 Commits

Author SHA1 Message Date
fengbojiang(姜凤波) 73e135b80c Fix crash of `netstat -n`, refer #438. 2019-10-29 15:31:14 +08:00
johnjiang a36df1e44e Merge pull request #441 from open-estuary/dev
lib/ff_config.c : Fix data overflow in more than 64 cores
2019-10-24 20:58:16 +08:00
johnjiang 59e841c5a2
Merge pull request #441 from open-estuary/dev
lib/ff_config.c : Fix data overflow in more than 64 cores
2019-10-24 20:58:16 +08:00
beard-627 868cca5674 lib/ff_config.c 2019-09-18 17:01:54 +08:00
beard-627 813e23e238 lib/ff_config.c 2019-09-18 17:01:54 +08:00
fengbojiang(姜凤波) d39775a93b Fix mac set bug. 2019-09-04 21:37:56 +08:00
fengbojiang(姜凤波) c9b3c75a23 Fix mac set bug. 2019-09-04 21:37:56 +08:00
fengbojiang(姜凤波) 5fbf4a15eb Bonding: supported. but it can't work in multi-processes, to be fix. 2019-09-04 21:17:10 +08:00
fengbojiang(姜凤波) c0f666848d Bonding: supported. but it can't work in multi-processes, to be fix. 2019-09-04 21:17:10 +08:00
fengbojiang(姜凤波) 1e14958312 packet_dispatcher support vlan. 2019-08-06 22:19:12 +08:00
fengbojiang(姜凤波) aa18b738d4 packet_dispatcher support vlan. 2019-08-06 22:19:12 +08:00
fengbojiang(姜凤波) 19dac219c8 Merge branch 'master' into dev
Fix bug of kni while set `vlan_strip=0`.
2019-08-06 22:11:54 +08:00
fengbojiang(姜凤波) 67c27ffe02 Merge branch 'master' into dev
Fix bug of kni while set `vlan_strip=0`.
2019-08-06 22:11:54 +08:00
fengbojiang(姜凤波) a20fd2ae31 Fix bug of kni while set `vlan_strip=0`. 2019-08-06 22:05:27 +08:00
fengbojiang(姜凤波) 3bb4314f74 Fix bug of kni while set `vlan_strip=0`. 2019-08-06 22:05:27 +08:00
root 7a9cdd23b7 KNI: remove the feature of monitor port's link status.
And if you want to use kni, you should do one of two action:
1. `insmod rte_kni.ko carrier=on` while init dpdk running environment.
2. or run `echo 1 > /sys/class/net/veth0/carrier` after enable veth0 up.

Refer #401, but this is not the real reason of #401, it is the DPDK's ENA driver can't work correctly in multi-processes.
2019-07-29 13:38:10 +00:00
root 3f18f1a26a KNI: remove the feature of monitor port's link status.
And if you want to use kni, you should do one of two action:
1. `insmod rte_kni.ko carrier=on` while init dpdk running environment.
2. or run `echo 1 > /sys/class/net/veth0/carrier` after enable veth0 up.

Refer #401, but this is not the real reason of #401, it is the DPDK's ENA driver can't work correctly in multi-processes.
2019-07-29 13:38:10 +00:00
fengbojiang(姜凤波) 1068dedc41 Modified vlan code. 2019-07-29 15:29:24 +08:00
fengbojiang(姜凤波) a08b952138 Modified vlan code. 2019-07-29 15:29:24 +08:00
HongBo Long 86d95e99f0 set freebsd mbuf vlan information when the vlan_strip is enable && get ether_type error when the vlan_strip is disabled 2019-07-29 15:27:40 +08:00
HongBo Long f66f945850 set freebsd mbuf vlan information when the vlan_strip is enable && get ether_type error when the vlan_strip is disabled 2019-07-29 15:27:40 +08:00
fengbojiang(姜凤波) c6dae7f8fe Merge branch 'master' into dev
vlan bug fix
2019-07-29 15:08:46 +08:00
fengbojiang(姜凤波) faeec574ca Merge branch 'master' into dev
vlan bug fix
2019-07-29 15:08:46 +08:00
fengbojiang(姜凤波) ab2d620de6 Modified vlan code. 2019-07-29 14:47:11 +08:00
fengbojiang(姜凤波) 00c65d220e Modified vlan code. 2019-07-29 14:47:11 +08:00
johnjiang 8eb6d4d5ae Merge pull request #403 from dragonorloong/master
vlan buf fix
2019-07-29 14:31:51 +08:00
johnjiang bae15df596
Merge pull request #403 from dragonorloong/master
vlan buf fix
2019-07-29 14:31:51 +08:00
johnjiang 185c857ebb Merge pull request #414 from jinhao2/dev
support more than 32 processes; support 52bytes rsskey; compile failed.
2019-07-29 13:58:21 +08:00
johnjiang 2479a83f3c
Merge pull request #414 from jinhao2/dev
support more than 32 processes; support 52bytes rsskey; compile failed.
2019-07-29 13:58:21 +08:00
jin.hao1 fd7b974f08 Update ff_dpdk_if.c
update codes.
2019-07-29 08:43:45 +08:00
jin.hao1 b467d9c428
Update ff_dpdk_if.c
update codes.
2019-07-29 08:43:45 +08:00
jin.hao1 a6e2dd0ebd Update ff_dpdk_if.c
code aligned.
2019-07-29 08:42:28 +08:00
jin.hao1 fa32b23ec3
Update ff_dpdk_if.c
code aligned.
2019-07-29 08:42:28 +08:00
fengbojiang(姜凤波) 7e4b7a1537 Merge branch 'master' into dev 2019-07-26 17:37:02 +08:00
fengbojiang(姜凤波) 86a4dcb0fe Merge branch 'master' into dev 2019-07-26 17:37:02 +08:00
10077240 58f65b59d5 fix bug: Can not support more than 32 processes 2019-07-26 16:52:57 +08:00
10077240 78415de5a0 fix bug: Can not support more than 32 processes 2019-07-26 16:52:57 +08:00
fengbojiang cea0be3c81 Tools: update top. 2019-07-25 22:33:42 +08:00
fengbojiang 0f5432bb05 Tools: update top. 2019-07-25 22:33:42 +08:00
fengbojiang(姜凤波) a8ea1bed90 Tools: All tools can work in parallel now. 2019-07-25 17:19:28 +08:00
fengbojiang(姜凤波) 6194fcd20a Tools: All tools can work in parallel now. 2019-07-25 17:19:28 +08:00
10077240 c005dd8b8e support more than 32 processes; support 52bytes rsskey; compile failed. 2019-07-25 11:27:30 +08:00
10077240 34e766d2b6 support more than 32 processes; support 52bytes rsskey; compile failed. 2019-07-25 11:27:30 +08:00
fengbojiang(姜凤波) 7cb21a2b2b IPv6: support multi-processes, deep copy NDP packet and dispatch. 2019-07-17 17:31:47 +08:00
fengbojiang(姜凤波) 10b909a1b3 IPv6: support multi-processes, deep copy NDP packet and dispatch. 2019-07-17 17:31:47 +08:00
root c84854ee3b IPv6: `netstat` tool support ipv6. 2019-07-15 21:04:09 +08:00
root ca915d33ee IPv6: `netstat` tool support ipv6. 2019-07-15 21:04:09 +08:00
root 3f2c0f7483 Always define FF_IOCTL6, because `top` and other tools not distinguish between inet or inet6 2019-07-15 20:02:58 +08:00
root 5f5ff92287 Always define FF_IOCTL6, because `top` and other tools not distinguish between inet or inet6 2019-07-15 20:02:58 +08:00
root e49450aae1 Fix define PF_INET6_LINUX 2019-07-15 17:22:15 +08:00
root 9e60a85fe5 Fix define PF_INET6_LINUX 2019-07-15 17:22:15 +08:00
fengbojiang(姜凤波) e499fe2b2a Merge branch 'dev' of https://github.com/F-Stack/f-stack into dev 2019-07-12 20:58:31 +08:00
fengbojiang(姜凤波) 6bbb2125dc Merge branch 'dev' of https://github.com/F-Stack/f-stack into dev 2019-07-12 20:58:31 +08:00
fengbojiang(姜凤波) adfdf56113 IPv6: FreeBSD stack and f-stack support ipv6. 2019-07-12 20:56:01 +08:00
fengbojiang(姜凤波) d7140ab746 IPv6: FreeBSD stack and f-stack support ipv6. 2019-07-12 20:56:01 +08:00
HongBo Long 2a7631a6bc set freebsd mbuf vlan information when the vlan_strip is enable && get ether_type error when the vlan_strip is disabled 2019-07-09 20:02:42 +08:00
HongBo Long 49056e3ae7 set freebsd mbuf vlan information when the vlan_strip is enable && get ether_type error when the vlan_strip is disabled 2019-07-09 20:02:42 +08:00
root 5910503df7 fix the issue that set the incorrect crc_strip flag. 2019-07-05 14:45:00 +08:00
root e4b4439165 fix the issue that set the incorrect crc_strip flag. 2019-07-05 14:45:00 +08:00
jfb8856606 ea837b1efb add `make install` and `make uninstall` in f-tack's lib and tools, refer #396 2019-07-01 19:18:54 +08:00
jfb8856606 5af66259d5 add `make install` and `make uninstall` in f-tack's lib and tools, refer #396 2019-07-01 19:18:54 +08:00
fengbojiang(姜凤波) dcc64c7196 remove unused code. 2019-06-27 18:21:45 +08:00
fengbojiang(姜凤波) 4de33dfa9f remove unused code. 2019-06-27 18:21:45 +08:00
fengbojiang(姜凤波) ad241aff99 Add pkt_tx_delay parameter in config.ini.
It should be default while handling large concurrent requests, otherwise
it will reduce the throughput.
But if there are only a little, you can set it to less than 100, even to
0, to reduce the delay of the connection.
2019-06-27 17:44:19 +08:00
fengbojiang(姜凤波) 59bb71f60e Add pkt_tx_delay parameter in config.ini.
It should be default while handling large concurrent requests, otherwise
it will reduce the throughput.
But if there are only a little, you can set it to less than 100, even to
0, to reduce the delay of the connection.
2019-06-27 17:44:19 +08:00
fengbojiang(姜凤波) 7f9cfd7ec2 modify RTE_MAX to RTE_ALIGN_CEIL while init mempool. 2019-06-27 12:12:59 +08:00
fengbojiang(姜凤波) 16d80a6ddc modify RTE_MAX to RTE_ALIGN_CEIL while init mempool. 2019-06-27 12:12:59 +08:00
jfb8856606 d30ea9060e Reupgrade DPDK to 18.11. 2019-06-25 19:12:58 +08:00
fengbojiang(姜凤波) 173e66311e Merge branch 'master' into dev 2019-06-25 17:15:06 +08:00
fengbojiang(姜凤波) d9e0c21a28 Add dispatch API reference. 2019-06-25 12:38:19 +08:00
logwang 5f73f9b957 Merge branch 'dev' into master 2019-05-21 22:19:57 +08:00
10077240 04cef02d60 use 4 spaces instead tab 2019-04-01 15:42:01 +08:00
jin.hao1 6149c27496 Update ff_memory.c 2019-04-01 15:03:51 +08:00
10077240 5bf882b459 modify according to MR.Wang 2019-04-01 14:54:36 +08:00
10077240 0da6ab43f7 modify makefile as needes 2019-03-29 10:49:35 +08:00
10077240 ef5ab85936 not use mcopy when transmit from bsd to dpdk 2019-03-29 10:42:02 +08:00
johnjiang fba559f45b Merge pull request #355 from jinhao2/master
ff_traffic.tx info should save the sent packets
2019-03-18 11:07:06 +08:00
jin.hao1 49d7ad40cc recommit 2019-03-15 18:07:15 +08:00
jin.hao1 268488030d ff_traffic.tx info should save the sent packets
send_burst()  send several pkts which maybe composed by several mbufs, use rte_pktmbuf_pkt_len() to get actual length.
2019-03-15 16:18:17 +08:00
fengbojiang(姜凤波) e8591dc5c0 F-Stack's kni can work on DPDK 18.11 LTS now. 2019-03-14 17:17:58 +08:00
fengbojiang(姜凤波) ee6c3aa356 modify packet_dispatcher to support response package direct. 2019-03-08 15:12:57 +08:00
teacup-on-rockingchair d3f10a087d Add support for getsockopt TCP_INFO 2019-02-24 10:51:25 +02:00
fengbojiang(姜凤波) d3f2221c0c Fix the IP/TCP/UDP csum error of txmode offloads, refer #317. 2019-01-18 18:05:18 +08:00
fengbojiang(姜凤波) 5af785ecea Revert "DPDK:upgrade to 18.11.0 LTS."
This reverts commit 8850115bd8.
2019-01-18 17:27:45 +08:00
fengbojiang 2accbca75e Format code. 2018-12-06 22:41:39 +08:00
jfb8856606 28440c506f DPDK:upgrade to 18.11.0 LTS. 2018-12-06 22:17:51 +08:00
fengbojiang a3bbaff58f CONTAINER(DOCKER): support aggregation model while running in container with OVS-DPDK, refer to #298. 2018-11-27 02:02:38 +08:00
DonBearH cac3602237 Setting FF_DPDK with MACHINE_CPUARCH 2018-11-08 14:57:44 +08:00
DonBearH bf05b3b78b Update Makefile for reserving FF_DPDK for x86
The former patch, which add compiler option for arm64, removes the FF_DPDK for x86.
That's a mistake.
2018-11-08 10:03:22 +08:00
dongbo4 9bd490e8d3 Add arch arm64 compiler options 2018-11-07 08:55:09 +00:00
morishima311 7230b27cf0 fix static building path of FF_DPDK 2018-08-24 16:03:23 +09:00
root dfbc4ac350 Merge branch 'master' of https://github.com/F-Stack/f-stack 2018-08-20 16:46:28 +08:00
root 5523938c5b add `base_virtaddr` config. 2018-08-20 16:44:33 +08:00
zhanghaisen a8636dd5c0 fix for issue 261 2018-08-20 14:54:18 +08:00
fengbojiang c506e4369e add "idle_sleep" to reduce CPU usage when no pkts incomming. 2018-08-18 01:45:11 +08:00
fengbojiang 5a73eef15f fix a traffic bug 2018-08-17 17:42:21 +08:00
fengbojiang 03df98dea2 add traffic tool. 2018-08-16 20:29:12 +08:00
whl739 7b9d3e8700 F-Stack: disable kni module by default.
Some omissions.
2018-06-21 17:51:57 +08:00
whl739 dc42d452ae F-Stack: disable kni module by default.
This commit adds a macro `FF_KNI` to determine whether to enable kni.
In Makefile, uncomment the `FF_KNI=1`, kni will be compiled into f-stack.
2018-06-21 17:39:17 +08:00
whl739 86036c745d Config: if proc-id is not configured, use 0. 2018-06-14 22:50:11 +08:00
logwang 5f219b2cad Merge pull request #230 from mscbg/master
F-stack:fix bug, if ff_veth_softc malloc faild, memory should not be read
2018-06-11 11:10:16 +08:00
yanya b0c07b2440 F-stack:fix bug, if ff_veth_softc malloc faild, memory should no be read. 2018-06-11 10:53:38 +08:00
logwang ee889fa71c Merge pull request #228 from boat0/master
make use of numa when setting up rx/tx queues
2018-06-10 22:01:56 +08:00
Xiaozhou Liu c2eceaad4c make use of numa when setting up rx/tx queues 2018-06-10 20:48:48 +08:00
whl739 867abe45fa Misc: some updates.
1.add interface `ff_dup` and `ff_dup2`.
2.add interface `ff_ioctl_freebsd`/`ff_getsockopt_freebsd`/`ff_setsockopt_freebsd` for tools.
3.initial parameter `proc-type` can be NULL, default "auto".
2018-06-10 20:41:48 +08:00
chenwei 968058581b Fstack: fixbug, bad checksum would lead to memleak of dpdk mbuf 2018-05-30 10:36:16 +08:00
whl739 b3aff0ba02 Fix compling error in the newer version of gcc and openssl.
`RAND_pseudo_bytes` is deprecated in the newer version of openssl.
Use `RAND_bytes` instead.
2018-05-28 21:05:36 +08:00
logwang 2bfe3f2e55 DPDK: upgrade to 17.11.2 LTS.
Changes:
1. This version is downloaded from
https://fast.dpdk.org/rel/dpdk-17.11.2.tar.xz.
2. Adapt the new interface `rte_ring_dequeue_burst`.
3. Change the type of `port_id` from uint8_t to uint16_t.
4. Just link libdpdk.a instead of the other libaries.
5. Install libnuma-dev first.
6. Update the documents.
2018-05-15 17:49:22 +08:00
logwang 5e5c25c329 kern_timeout: decrease the cpu usage of timer.
There's a bug of last version, every tick, the timer will traverse all the
entries in callwheel, when lots of connections comming, the callout
process will use lots of cpu resources.

This commit fixes it, every tick, check the bucket which is hashed with current
tick, if there are entries, compare the callout tick, and invoke
callbacks.
2018-05-10 17:53:18 +08:00
chenwei d16cce93d7 API: [BugFix] On success, `ff_sendmsg` return the number of chars sent. 2018-04-09 11:22:26 +08:00
chenwei 6c629acab4 API : ff_sendmsg, use transient variables to avoid polluting user's data. 2018-02-02 17:58:17 +08:00
chenwei d8829f7e5a API : fix bug of ff_sendmsg and ff_recvmsg
freebsd and linux have a different "struct sockaddr".
In ff_recvmsg and ff_recvmsg, ```msg->msg_name```,which can refer to address, can be expected to be converted .
2018-02-02 15:28:58 +08:00
logwang 39be5a505f ff_kern_timeout: optimize the timecounter.
This timecounter implementation retrieves the current time and reports it
as the equivalent number of counts from a counter incrementing at 'hz'.
2018-01-19 21:03:20 +08:00
logwang e272b945ad FreeBSD: initialize `mp_ncpus`.
Fix crash when executing `./sysctl -w kern.callout_stat=1`.
2018-01-18 21:08:22 +08:00
logwang 62a0d71654 Ipfw: fix "invalid argument" when using `divert`.
Note that this only fix the error, `divert` is still not usable, refer to #136.
If you want to use NAT, you can just use the built-in `ipfw nat`
instead.
2018-01-08 21:53:39 +08:00
logwang 7f4229ea8b Misc: add "extern C" in public header files. 2018-01-02 18:22:40 +08:00
logwang 8740605f9d Remove the unusable api `ff_socketpair`.
Since F-Stack doesn't support AF_UNIX. ff_socketpair couldn't work and
should be removed.
2017-12-27 14:59:15 +08:00
daovanhuy b77f6ee6a0 Fix #124
Fix #124: set/get user data in epoll
2017-12-27 11:28:49 +07:00
chenwei 70bb2888cb Nginx: support kernel network stack, so we can do what fstack can't do,
e.g. unix socket, ipc (with APP on kernel network stack), packet from kernel network stack.
1. Add a new directive kernel_network_stack :
    Syntax: 	kernel_network_stack on | off;
    Default: 	kernel_network_stack off;
   Context: 	http, server
  This directive is available only when NGX_HAVE_FF_STACK is defined.
  Determines whether server should run on kernel network stack or fstack.
2. Use a simpler and  more effective solution to discriminate fstack fd(file descriptor, only socket for now) from kernel fd.
2017-12-08 18:32:08 +08:00
logwang b226a4cf7e ff_epoll: rewrite `ff_epoll_ctl`. 2017-12-07 12:24:49 +08:00
logwang 9d39026bdb ff_epoll: support edge-triggered mode.
Convert epoll EPOLLET to kqueue EV_CLEAR.
2017-12-05 17:51:02 +08:00
logwang bc0ac4755a Fix bug: incorrect usage of `rte_pktmbuf_clone` when dispatching arp packets.
Since f-stack uses `rte_pktmbuf_clone` to copy mbuf to other lcores when dispatching arp packets, but it doesn't real copy the packet data. The buf_addr of pktmbuf is pointed to the same address.

The arp response packet is generated with the same mbuf from the request
packet, it just swaps the src and dst address, so the copied mbufs will also be changed.

What we need is a deep copy function, and the arp packets are really small, so deep copy will not harm performance too much.

Fix #53 #111 #112.
2017-12-01 17:25:47 +08:00
logwang 112c74aa2e 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 49e481768a Use general protocol header length in protocol filter. 2017-11-21 11:20:14 +08:00
logwang 8cfa29232a 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
whl739 127dd473af 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
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 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
YuYang 257bb980b4 less arp ring 2017-09-25 12:05:30 +08:00
logwang 85aab0a645 Optimize tx. 2017-09-22 17:35:50 +08:00
logwang 8755b2de54 Fix bug: freebsd sysctl config not work. 2017-09-21 15:03:05 +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 8cf1d457cb Optimize makefile 2017-09-14 15:25:07 +08:00
YuYang 34b2fad45f use CONF_CFLAGS to pass extra CLFAGS 2017-09-06 10:26:12 +08:00
Andy 08dba0109c add lvs toa option 2017-09-04 23:19:12 -04:00
logwang df692c6078 Fix null pointer when `numa_on=0`. 2017-09-04 11:42:18 +08:00
logwang 1eaf0ac36a Add tool: netstat.
Including libraries: libutil,libmemstat,libxo.
2017-08-31 21:34:50 +08:00
ppliu1979 27fdd30224 Fix the wrong operator order in ff_rss_check function. 2017-08-30 18:29:03 +08:00
logwang a9e7dcf4da Fix ff_rss_check function bug.
1.Close #22.
2.Configure the HW indirection table when initializing port.
3.Use several LSBs of the rss hash result according to reta_size when
calculating queue index.
2017-08-28 17:12:07 +08:00
Andy 8fecf4dd08 user prosess lr->loop called every 100us when idle 2017-08-24 07:41:07 -04:00
logwang a1720b1d7a Merge pull request #57 from isjy/master
add top tool
2017-08-24 19:12:24 +08:00
Andy e7741141d0 add top tool 2017-08-24 02:17:34 -04:00
logwang 6a812e619b Merge branch 'master' of https://github.com/F-Stack/f-stack 2017-08-23 17:00:59 +08:00
logwang 406002113b Support nginx reload.
close #12.
For more details, see doc/F-Stack_Nginx_APP_Guide.md.
2017-08-23 16:54:32 +08:00
Tonghao Zhang 2408588520 dpdk-if: Change the TX_QUEUE_SIZE to 512.
The ring length of some NIC devices(e.g vmxnet3 ) should be
between 512-4096. We should change the TX_QUEUE_SIZE from 256 to 512
and make sure we can use the f-stack in vmxnet3.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
2017-08-23 01:09:32 -07:00
logwang 64abcf71e3 Add configuration item: vlan_strip 2017-08-09 16:52:16 +08:00
logwang 615f2d3c02 Fix `ff_fdused_range` not work. 2017-08-08 23:47:38 +08:00
logwang a02c88d651 Simplify startup arguments and add ff_fdisused.
Changes:
1.Simplify f-stack startup arguments:"--conf, --proc-type, --proc-id".
2.add a function `ff_fdisused` to check if fd is used in f-stack.
2017-08-08 22:36:49 +08:00
logwang 7e048838a7 Add API: ff_gettimeofday.
Since f-stack run with polling mode, nginx will call gettimeofday every loop, and cost a lot.
With this commit, f-stack will update current timespec periodically in
ff_hardclock_job. And ff_gettimeofday will get this value.
In nginx, hijack gettimeofday to call ff_gettimeofday.
2017-08-04 18:04:43 +08:00
logwang c8722d26ac Fix KNI out of memory: a typo leads rte_mbuf leak. 2017-07-04 11:47:44 +08:00
logwang 3132126c98 Merge branch master of https://github.com/F-Stack/f-stack 2017-06-14 15:38:42 +08:00
logwang 144c6bcd95 Add tool: route.
This commit ports FreeBSD `route` to F-Stack, can be used to set the route
table.
2017-06-14 15:25:35 +08:00
logwang a2d49456a2 Merge pull request #37 from uvuv/devel
Epoll optimization: add ff_kevent_do_each()
2017-06-13 19:39:01 +08:00
Ron 850cbeb422 kevent copyout directly without 2017-06-13 19:26:38 +08:00
Ron 1a78ce8ea6 epoll optimization, add ff_kevent_do_each 2017-06-13 17:50:51 +08:00
logwang d5f5b02c2e Fix multi ports bug: the secondary processes will not start port correctly. 2017-06-13 17:14:49 +08:00
root bed8feab33 fix KNI: Out of memory 2017-06-12 16:12:22 +08:00
logwang 488adaba23 Fix #28: opt_vlan.h is omitted by the previous commit. 2017-06-07 15:39:13 +08:00
derness c9f0232b74 fix memory leak issue. 2017-06-07 13:18:11 +08:00
logwang df6ad73146 Add tool: ifconfig.
Changes:
    Remove directory `ipc`, and add a new directory `compat`.
    Directory `compat` includes some FreeBSD source files to be compatible
        with Linux.
    Port FreeBSD ifconfig to F-Stack.
2017-06-06 16:52:52 +08:00
logwang 2d99e60c29 Tools/sysctl: make porting more general.
When porting tools, We should change the original codes as few as
possible.
2017-05-27 03:29:29 +08:00
logwang 7abd0fb2a9 Add tool: sysctl.
This commit contains an ipc library implemented by dpdk rte_ring and
sysctl tool ported from FreeBSD.

With this commit we can get and set FreeBSD kernel state in runtime.
2017-05-23 23:13:49 +08:00
logwang 9efa5f0af7 Fix typo. 2017-05-17 15:59:07 +08:00
whl739 cd915f5022 Merge branch 'master' of https://github.com/F-Stack/f-stack 2017-05-17 15:18:42 +08:00
whl739 c15aae717a Fix #9: error variable i in loop. 2017-05-17 14:35:52 +08:00
logwang 1fdd2a6e8b Fix typo. 2017-05-16 16:16:10 +08:00
logwang 5e3a4c7748 Fix #7:arp ring lookup called after create. 2017-05-15 13:16:52 +08:00
logwang 8f57dbbcb5 Fix #4: nb_procs < 0 =====> proc_id < 0 2017-05-15 11:27:44 +08:00
logwang 213fa7b358 Support RX/TX offload according to HW's capability
RX: VLAN strip, CRC strip, IP/TCP/UDP checksum.
TX: IP/TCP/UDP checksum, TSO.

Note that TSO has a problem: when enable TSO,
F-Stack is much slower(Temporarily not resolved).
So TSO is disabled by default.
Edit config.ini to enable it.
2017-05-06 21:52:25 +08:00
logwang c590631e7e Merge branch 'master' of https://github.com/F-Stack/f-stack 2017-05-02 18:27:43 +08:00
logwang f47e38d9dd Fix kni bug.
BUG:
When set config.ini:
[kni]
enable=1
method=reject
tcp_port=80

Packets that not belond to tcp port 80 will not be transmitted to kernel.
2017-05-02 18:05:26 +08:00
logwang 627097dc92 Support VLAN Strip.
In some cases such as AWS EC2, we must strip vlan tag.
Edit the config.ini, set port.vlanstrip = 1.
2017-05-02 18:03:38 +08:00
logwang 5f3825effd Disable DEBUG mode by default 2017-05-02 17:45:25 +08:00
root 1ab1bbefe2 update README.md and file to Execution 2017-04-24 04:12:53 +00:00
logwang a9643ea85c init 2017-04-21 18:43:26 +08:00