logwang
575b547703
Merge pull request #171 from chadwill/master
...
Nginx : a more friendly hint. Refer to #169 .
2018-03-22 15:47:00 +08:00
陈威
778eaa4b45
Nginx : a more friendly hint
...
If the f-stack primary process hasn't been initialized successful, the nginx master gives a more friendly hint.
2018-03-22 15:41:17 +08:00
logwang
86b1f8131c
Merge pull request #170 from yangqiang71/master
...
🐛 ai->ai_addr should be (struct sockaddr *)(ai+1)
2018-03-19 11:29:23 +08:00
root
d151f2e185
🐛 ai->ai_addr should be (struct sockaddr *)(ai+1)
2018-03-19 10:40:01 +08:00
logwang
f1e85c1896
Merge pull request #169 from chadwill/master
...
Nginx: bugfix, secondary worker should be spawned after primary completing initialization of fstack(dpdk)
2018-03-12 19:46:23 +08:00
chenwei
7703b7e50a
Nginx: bugfix, secondary worker should be spawned after primary worker completing initialization of fstack(dpdk)
...
When starting nginx with mutil-processes, secondary worker may be spawned before primary worker completing initialization of fstack(dpdk), so errors occurred, for one, in kni.
2018-03-12 17:13:02 +08:00
logwang
6b34d16078
Set the default configuration `kern.ncallout`(number of entries in
...
callwheel and size of timeout() preallocation).
2018-03-01 16:07:35 +08:00
logwang
eba4f71434
Merge pull request #166 from chadwill/master
...
Nginx : bugfix, changing `listening socket type` may lead to errors.
2018-03-01 16:03:28 +08:00
chenwei
65c723a426
Nginx : bugfix, changing `listening socket type` in cycle may lead to errors.
...
Uses a temporaty variable to hold of potentially changing socket type but
does not modify `listening socket type` in cycle.
2018-03-01 15:39:33 +08:00
logwang
7b05e9bf4e
Merge pull request #161 from chadwill/master
...
Nginx : directive proxy_kernel_network_stack
2018-02-24 18:03:29 +08:00
chenwei
42f547056e
Nginx: revise indent.
2018-02-24 17:08:59 +08:00
chenwei
76e16b226f
Nginx : add a creation flag SOCK_FSTACK(create-fstack-socket) for socket()
...
1. `#define SOCK_FSTACK 0x1000`
2. when we want to create socket by fstack, we code like this :
`s = ngx_socket(domain, type | SOCK_FSTACK , protocol);`
2018-02-24 16:45:10 +08:00
陈威
edbcaf6eef
Update F-Stack_Nginx_APP_Guide.md
2018-02-09 20:09:05 +08:00
陈威
38120bf0aa
Merge pull request #1 from chadwill/develop
...
Nginx :directive ```proxy_kernel_network_stack```
2018-02-06 01:56:24 -06:00
logwang
80b2d7d52b
Merge pull request #159 from chadwill/master
...
Nginx : ngx_configure_listening_sockets and hijack `recvmsg`
2018-02-06 15:22:14 +08:00
chenwei
d1d95d5185
Nginx : directive proxy_kernel_network_stack
...
1. Add a new directive proxy_kernel_network_stack :
Syntax: proxy_kernel_network_stack on | off;
Default: proxy_kernel_network_stack off;
Context: http, stream, mail, server
This directive is available only when NGX_HAVE_FF_STACK is defined.
Determines whether proxy should go throught kernel network stack or fstack.
2.Update F-Stack_Nginx_APP_Guide.md
2018-02-05 15:55:20 +08:00
chenwei
b60bba339e
API : ff_sendmsg, use transient variables to avoid polluting user's data.
2018-02-02 17:58:17 +08:00
chenwei
26fa2bc45b
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
chenwei
4e5f8d85e1
Nginx : replace macro with inline function to implement ```ngx_ff_skip_listening_socket```
2018-02-01 16:30:46 +08:00
chenwei
ab555adef4
Nginx: hijack `recvmsg`.
...
Since Nginx calls `recvmsg` in stream with udp, we must
hijack this function, so that the network IO can pass through
f-stack.
2018-01-31 13:47:44 +08:00
chenwei
f6a681c496
Nginx : ngx_configure_listening_sockets
...
1. Nginx based on fstack delays setting up server on fstack until ngx_worker_process_init. ngx_configure_listening_sockets should as well.
2. FStack does not support IP_PKTINFO
2018-01-31 13:37:58 +08:00
logwang
6adaac3368
Merge pull request #158 from chadwill/master
...
Nginx : Fix Compile error with `--with-stream`
2018-01-31 12:45:26 +08:00
chenwei
0a6b81772e
Nginx : Fix Compile error
...
Fix compile error when configure nginx with --with-stream
2018-01-31 09:02:25 +08:00
logwang
cc7be195f4
Merge pull request #156 from chadwill/patch-1
...
Update F-Stack_Nginx_APP_Guide.md
2018-01-29 19:01:26 +08:00
logwang
17140315e7
Merge pull request #151 from chadwill/master
...
Nginx : Get rid of "ff_host" thread
2018-01-29 19:01:11 +08:00
chenwei
dcfbe1ad39
Nginx: Restore ngx_get_connection and ngx_free_connection
...
The code that we used to preserve ngx_get_connection and ngx_free_connection thread safety , is not necessary now.
2018-01-29 16:41:35 +08:00
陈威
bb4234c89c
Update F-Stack_Nginx_APP_Guide.md
...
Add description of directive ```kernel_network_stack```.
2018-01-26 21:44:05 +08:00
陈威
d918f1d3ae
Update F-Stack_Nginx_APP_Guide.md
...
Handle fstack in nginx ```work process cycle```. Refer to #151 .
2018-01-26 17:44:47 +08:00
陈威
6484644fe3
Nginx: Cut out code about poll-kernel frequency
...
Cut out unreasonable code about poll-kernel frequency
2018-01-26 17:14:13 +08:00
logwang
9f78ac569c
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
54e1dbca13
FreeBSD: initialize `mp_ncpus`.
...
Fix crash when executing `./sysctl -w kern.callout_stat=1`.
2018-01-18 21:08:22 +08:00
陈威
67b8d9710a
Nginx: Restore unexpected Comment
2018-01-17 17:33:01 -06:00
chenwei
f4c5cf3972
Nginx : Get rid of "ff_host" thread, so single thread is used for both fstack and kernel.
2018-01-17 17:51:08 +08:00
logwang
e340d433ea
Nginx: fix crash when server configuration item [`kernel_network_stack`] is on and uses `proxy_pass`.
...
When nginx is configured like this:
```
server {
listen 8000;
kernel_network_stack on;
location / {
proxy_pass http://127.0.0.1:8080/ ;
}
}
```
nginx will crash, becasue kernel network stack is handled in a single thread, but we have hijacked all the socket apis, it causes that all apis enter to f-stack's path which is in main thread.
2018-01-11 18:20:41 +08:00
logwang
e9cbb9895c
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
73ef8c4ddb
Merge pull request #138 from shivansh/fix/build_kernel-4.12
...
DPDK: Fix build with kernel 4.12
2018-01-05 14:47:47 +08:00
Shivansh Rai
0d76c9d0a5
Fix build with kernel 4.12
...
Corresponding upstream patches -
* http://dpdk.org/dev/patchwork/patch/24076/
* http://dpdk.org/dev/patchwork/patch/22003/
Tested on "4.12.4-custom".
2018-01-05 11:32:34 +05:30
logwang
403263ffc6
Merge pull request #134 from shivansh/fix/tautological_compare
...
Fix tautological comparison
2018-01-03 14:56:07 +08:00
Shivansh Rai
d7c22d3751
Fix tautological comparison
...
Corresponding upstream changeset: https://github.com/freebsd/freebsd/commit/d45a807e
2018-01-02 23:11:52 +05:30
logwang
b844e8f80a
Misc: add "extern C" in public header files.
2018-01-02 18:22:40 +08:00
logwang
23742d21d9
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
logwang
2e360cf2b8
Merge pull request #125 from daovanhuy/patch-1
...
Fix #124 : set/get user data in epoll
2017-12-27 14:43:22 +08:00
daovanhuy
8d6a4447df
Fix #124
...
Fix #124 : set/get user data in epoll
2017-12-27 11:28:49 +07:00
logwang
b2dbf8fd04
Example: fix listen queue overflow.
...
According to the FreeBSD Manual Page:
- When kevent() returns and if `flags` is EVFILT_READ, sockets which have previously been passed to listen() return when there is an incoming connection pending. `data` contains the size of the listen backlog.
So if an EVFILT_READ event reaches and it is the listen socket, we must accept `event->data` times. And for `ff_epoll` interface, we should continue to accept until it fails.
In the previous version, we only accept once when event reaches, it will cause listen queue overflow.
2017-12-21 23:23:33 +08:00
logwang
c4e752fc00
Merge pull request #117 from chadwill/master
...
Nginx: support kernel network stack
2017-12-15 17:36:07 +08:00
chenwei
2b31b4e34c
Nginx : The I/O functions with glue code may be called before ngx_max_sockets is initialized, fix this error.
2017-12-14 15:07:30 +08:00
chenwei
df18ef7de7
Nginx : Follow nginx programming convention - indent.
2017-12-14 14:55:36 +08:00
logwang
df9cc249f2
Add tool: arp.
...
The arp utility displays and modifies the Internet-to-Ethernet address translation tables used by the address resolution protocol.
2017-12-13 17:05:48 +08:00
chenwei
acc0462acd
rename "timers" and "events_posted"
2017-12-09 15:24:58 +08:00
chenwei
590bcd338b
rename ngx_event_actions_dy to ngx_ff_host_event_actions
2017-12-09 15:02:13 +08:00