Commit Graph

234 Commits (a4612ce66c87beccc3036658b4adadf4f799e546)

Author SHA1 Message Date
logwang a4612ce66c
Merge pull request #190 from jbwyatt4/master
Grammar and other fixes
2018-04-20 10:50:10 +08:00
jbwyatt4 457ddce291
Grammar and other fixes 2018-04-19 05:45:35 -07:00
logwang 205092b25b
Merge pull request #189 from chadwill/master
Nginx: fixbug, hijack `__recv_chk`.
2018-04-16 19:47:33 +08:00
chenwei 702a9cad2d Nginx: fixbug, hijack `__recv_chk`.
Nginx maybe call `__recv_chk` with https because of _FORTIFY_SOURCE.
Refer to #179.
See _FORTIFY_SOURCE (since glibc 2.3.4)
2018-04-16 18:52:58 +08:00
logwang 559f532025
Merge pull request #186 from chadwill/master
Nginx: bugfix, shouldnot pollute `socket type`
2018-04-10 19:18:33 +08:00
chenwei f2602fcff6 Nginx: bugfix, shouldnot pollute `socket type` 2018-04-10 17:28:10 +08:00
logwang 302113aba2
Merge pull request #183 from chadwill/master
Nginx: some logs are no longer needed on nginx-fstack.
2018-04-09 16:36:21 +08:00
chenwei 6ef175012c Nginx: some logs are no longer needed on nginx-fstack. 2018-04-09 15:42:21 +08:00
logwang a64ef10d72
Merge pull request #182 from chadwill/master
API: [BugFix] On success, `ff_sendmsg` return the number of chars sent.
2018-04-09 11:55:13 +08:00
chenwei 8ad1f163fa API: [BugFix] On success, `ff_sendmsg` return the number of chars sent. 2018-04-09 11:22:26 +08:00
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