Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP requests to url? #1

Open
moscovium115 opened this issue Apr 8, 2024 · 24 comments
Open

HTTP requests to url? #1

moscovium115 opened this issue Apr 8, 2024 · 24 comments

Comments

@moscovium115
Copy link

Hello Developer,

The repository you have made looks very interesting and we were wondering whether we can use the code to send and receive HTTP requests to a certain URL. We can see a HTTP client, but not a server. Any guidance to achieves these goals will be highly appreciated.

Thank you

@renzibei
Copy link
Owner

renzibei commented Apr 8, 2024

Hi, do you need a http client or server? Currently the http client and http connection pool have been implemented. The http server has not been done.

@bruHFT
Copy link

bruHFT commented Apr 8, 2024

Hi, sorry. I need a http client which you already have sorry for the confusion! I do have another question I have some trouble building your repo after installing F-stack with DPDK

git clone https://github.com/renzibei/flashws
cd flashws
git submodule update --init --recursive
root@ip-172-31-7-47:/data/flashws# cd tests
mkdir build
cmake .. -DFWS_ENABLE_FSTACK=ON
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- FWS_ENABLE_FSTACK ON
-- FWS_DEBUG: ON
-- FWS_DEV_DEBUG OFF
-- FWS_FORCE_NO_EPOLL OFF
-- FWS_FORCE_TIMEOUT_ZERO OFF
-- FWS_USE_BORINGSSL OFF
-- Performing Test COMPILER_SUPPORTS_AVX2
-- Performing Test COMPILER_SUPPORTS_AVX2 - Success
-- AVX2 supported. Adding -mavx2 flag.
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2")  
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libdpdk'
--   Found libdpdk, version 22.11.3
-- Configuring done
-- Generating done
-- Build files have been written to: /data/flashws/tests
root@ip-172-31-7-47:/data/flashws/tests# make -j6

but build dir is empty:

root@ip-172-31-7-47:/data/flashws/tests/build# ls
root@ip-172-31-7-47:/data/flashws/tests/build# 

@renzibei
Copy link
Owner

renzibei commented Apr 8, 2024

Hi, I forgot to add one line between mkdir build and cmake .. -DFWS_ENABLE_FSTACK=ON. You should cd build after mkdir build.

@bruHFT
Copy link

bruHFT commented Apr 8, 2024

Thanks for the speedy response. Another issue arises:

root@ip-172-31-7-47:/data# git clone https://github.com/renzibei/flashws
cd flashws
git submodule update --init --recursive
Cloning into 'flashws'...
remote: Enumerating objects: 443, done.
remote: Counting objects: 100% (443/443), done.
remote: Compressing objects: 100% (192/192), done.
remote: Total 443 (delta 268), reused 383 (delta 211), pack-reused 0
Receiving objects: 100% (443/443), 228.00 KiB | 413.00 KiB/s, done.
Resolving deltas: 100% (268/268), done.
Submodule 'thirdparty/HdrHistogram_c' (https://github.com/HdrHistogram/HdrHistogram_c.git) registered for path 'thirdparty/HdrHistogram_c'
Submodule 'thirdparty/boringssl' (https://github.com/google/boringssl.git) registered for path 'thirdparty/boringssl'
Cloning into '/data/flashws/thirdparty/HdrHistogram_c'...
Cloning into '/data/flashws/thirdparty/boringssl'...
Submodule path 'thirdparty/HdrHistogram_c': checked out '733b470eced028fac82a3cbfd064f2dcf545c6bc'
Submodule 'test/vendor/google/benchmark' (https://github.com/google/benchmark.git) registered for path 'thirdparty/HdrHistogram_c/test/vendor/google/benchmark'
Cloning into '/data/flashws/thirdparty/HdrHistogram_c/test/vendor/google/benchmark'...
Submodule path 'thirdparty/HdrHistogram_c/test/vendor/google/benchmark': checked out 'daff5fead3fbe22c6fc58310ca3f49caf117f185'
Submodule path 'thirdparty/boringssl': checked out 'df3b58ea74c50ff785ab902be3b007ff008d3e3c'
root@ip-172-31-7-47:/data/flashws# cd tests
mkdir build
root@ip-172-31-7-47:/data/flashws/tests# cd build
root@ip-172-31-7-47:/data/flashws/tests/build# cmake .. -DFWS_ENABLE_FSTACK=ON
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- FWS_ENABLE_FSTACK ON
-- FWS_DEBUG: ON
-- FWS_DEV_DEBUG OFF
-- FWS_FORCE_NO_EPOLL OFF
-- FWS_FORCE_TIMEOUT_ZERO OFF
-- FWS_USE_BORINGSSL OFF
-- Performing Test COMPILER_SUPPORTS_AVX2
-- Performing Test COMPILER_SUPPORTS_AVX2 - Success
-- AVX2 supported. Adding -mavx2 flag.
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2")  
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libdpdk'
--   Found libdpdk, version 22.11.3
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Looking for ceil in m
-- Looking for ceil in m - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
CMake Error at CMakeLists.txt:20 (add_subdirectory):
  add_subdirectory given source "test_ring_buffer" which is not an existing
  directory.


-- Configuring incomplete, errors occurred!
See also "/data/flashws/tests/build/CMakeFiles/CMakeOutput.log".

@renzibei
Copy link
Owner

renzibei commented Apr 8, 2024

@bruHFT Just fixed. You can pull again and test.

@bruHFT
Copy link

bruHFT commented Apr 8, 2024

It got one step further, but not quite done

cmake .. -DFWS_ENABLE_FSTACK=ON
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- FWS_ENABLE_FSTACK ON
-- FWS_DEBUG: ON
-- FWS_DEV_DEBUG OFF
-- FWS_FORCE_NO_EPOLL OFF
-- FWS_FORCE_TIMEOUT_ZERO OFF
-- FWS_USE_BORINGSSL OFF
-- Performing Test COMPILER_SUPPORTS_AVX2
-- Performing Test COMPILER_SUPPORTS_AVX2 - Success
-- AVX2 supported. Adding -mavx2 flag.
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2")  
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libdpdk'
--   Found libdpdk, version 22.11.3
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Looking for ceil in m
-- Looking for ceil in m - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Configuring done
CMake Error at test-https-client/CMakeLists.txt:8 (add_executable):
  Cannot find source file:

    test_search.cpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
  .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc


CMake Error at test-https-client/CMakeLists.txt:8 (add_executable):
  No SOURCES given to target: test_search


CMake Generate step failed.  Build files cannot be regenerated correctly.

@renzibei
Copy link
Owner

renzibei commented Apr 8, 2024

Updated, please try again.

@bruHFT
Copy link

bruHFT commented Apr 8, 2024

thank you very much cmake now worked!

root@ip-172-31-7-47:/data/flashws/flashws/tests/build# cmake .. -DFWS_ENABLE_FSTACK=ON
-- FWS_ENABLE_FSTACK ON
-- FWS_DEBUG: ON
-- FWS_DEV_DEBUG OFF
-- FWS_FORCE_NO_EPOLL OFF
-- FWS_FORCE_TIMEOUT_ZERO OFF
-- FWS_USE_BORINGSSL OFF
-- AVX2 supported. Adding -mavx2 flag.
-- Configuring done
-- Generating done
-- Build files have been written to: /data/flashws/flashws/tests/build

but error in make -j6

root@ip-172-31-7-47:/data/flashws/flashws/tests/build# make -j6
[  1%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_encoding.c.o
[  3%] Building CXX object test-https-client/CMakeFiles/http_pool.dir/test_http_pool.cpp.o
[  5%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_encoding.c.o
[  7%] Building CXX object test-https-client/CMakeFiles/test_search.dir/test_search.cpp.o
[  8%] Building CXX object test-new-tcp-echo/CMakeFiles/tcp_echo_server.dir/server.cpp.o
[ 10%] Building CXX object test-https-client/CMakeFiles/new_https_client.dir/https_client.cpp.o
[ 12%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_histogram.c.o
[ 14%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_histogram.c.o
[ 16%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_histogram_log.c.o
[ 17%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_histogram_log.c.o
[ 19%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_interval_recorder.c.o
[ 21%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_interval_recorder.c.o
[ 23%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_thread.c.o
[ 25%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_thread.c.o
[ 26%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_time.c.o
[ 28%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_time.c.o
[ 30%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_writer_reader_phaser.c.o
[ 32%] Linking C shared library libhdr_histogram.so
[ 33%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_writer_reader_phaser.c.o
[ 35%] Linking C static library libhdr_histogram_static.a
[ 35%] Built target hdr_histogram
[ 35%] Built target hdr_histogram_static
[ 37%] Building CXX object new-ws-echo/CMakeFiles/test_ws_server.dir/test_ws_server.cpp.o
[ 39%] Building CXX object test-utils/CMakeFiles/test_utils.dir/test_utils.cpp.o
/data/flashws/flashws/tests/test-https-client/test_search.cpp: In function ‘int main(int, char**)’:
/data/flashws/flashws/tests/test-https-client/test_search.cpp:31:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
   31 | int main(int argc, char *argv[])
      |          ~~~~^~~~
/data/flashws/flashws/tests/test-https-client/test_search.cpp:31:26: warning: unused parameter ‘argv’ [-Wunused-parameter]
   31 | int main(int argc, char *argv[])
      |                    ~~~~~~^~~~~~
[ 41%] Linking CXX executable test_search
/data/flashws/flashws/tests/test-utils/test_utils.cpp: In function ‘int main(int, const char**)’:
/data/flashws/flashws/tests/test-utils/test_utils.cpp:336:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
  336 | int main(int argc, const char** argv) {
      |          ~~~~^~~~
/data/flashws/flashws/tests/test-utils/test_utils.cpp:336:33: warning: unused parameter ‘argv’ [-Wunused-parameter]
  336 | int main(int argc, const char** argv) {
      |                    ~~~~~~~~~~~~~^~~~
/data/flashws/flashws/tests/test-utils/test_utils.cpp: In instantiation of ‘int64_t test::PureSha1AndBase(const char*, char*, const char*, const char*) [with long unsigned int client_key_len = 24; long unsigned int uuid_len = 36; int64_t = long int]’:
/data/flashws/flashws/tests/test-utils/test_utils.cpp:272:61:   required from here
/data/flashws/flashws/tests/test-utils/test_utils.cpp:217:119: warning: unused parameter ‘ref_sha1’ [-Wunused-parameter]
  217 |     int64_t PureSha1AndBase(const char* FWS_RESTRICT client_key, char* FWS_RESTRICT dst_buf, const char* FWS_RESTRICT ref_sha1, const char* FWS_RESTRICT ref_dst) {
      |                                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /data/flashws/flashws/include/flashws/flashws.h:8,
                 from /data/flashws/flashws/tests/test-https-client/https_client.cpp:4:
/data/flashws/flashws/include/flashws/net/floop.h: In static member function ‘static void fws::FLoop< <template-parameter-1-1> >::PreExit(fws::FLoop< <template-parameter-1-1> >*)’:
/data/flashws/flashws/include/flashws/net/floop.h:540:13: error: there are no arguments to ‘ff_stop_run’ that depend on a template parameter, so a declaration of ‘ff_stop_run’ must be available [-fpermissive]
  540 |             ff_stop_run();
      |             ^~~~~~~~~~~
/data/flashws/flashws/include/flashws/net/floop.h:540:13: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/data/flashws/flashws/tests/test-https-client/https_client.cpp: In lambda function:
/data/flashws/flashws/tests/test-https-client/https_client.cpp:67:49: warning: unused parameter ‘sock’ [-Wunused-parameter]
   67 |         socket.SetOnReadable([](fws::TLSSocket &sock, fws::IOBuffer &&buf, void *user_data){
      |                                 ~~~~~~~~~~~~~~~~^~~~
/data/flashws/flashws/tests/test-https-client/https_client.cpp:67:82: warning: unused parameter ‘user_data’ [-Wunused-parameter]
   67 |         socket.SetOnReadable([](fws::TLSSocket &sock, fws::IOBuffer &&buf, void *user_data){
      |                                                                            ~~~~~~^~~~~~~~~
/data/flashws/flashws/tests/test-https-client/https_client.cpp: In lambda function:
/data/flashws/flashws/tests/test-https-client/https_client.cpp:75:51: warning: unused parameter ‘sock’ [-Wunused-parameter]
   75 |         socket.SetOnClose([&loop](fws::TLSSocket &sock, void *user_data){
      |                                   ~~~~~~~~~~~~~~~~^~~~
/data/flashws/flashws/tests/test-https-client/https_client.cpp:75:63: warning: unused parameter ‘user_data’ [-Wunused-parameter]
   75 |         socket.SetOnClose([&loop](fws::TLSSocket &sock, void *user_data){
      |                                                         ~~~~~~^~~~~~~~~
/data/flashws/flashws/tests/test-https-client/https_client.cpp: In lambda function:
/data/flashws/flashws/tests/test-https-client/https_client.cpp:80:46: warning: unused parameter ‘sock’ [-Wunused-parameter]
   80 |         socket.SetOnError([](fws::TLSSocket& sock, int code, std::string_view reason, void *user_data) {
      |                              ~~~~~~~~~~~~~~~~^~~~
/data/flashws/flashws/tests/test-https-client/https_client.cpp:80:93: warning: unused parameter ‘user_data’ [-Wunused-parameter]
   80 |         socket.SetOnError([](fws::TLSSocket& sock, int code, std::string_view reason, void *user_data) {
      |                                                                                       ~~~~~~^~~~~~~~~
In file included from /data/flashws/flashws/include/flashws/flashws.h:8,
                 from /data/flashws/flashws/tests/test-new-tcp-echo/server.cpp:1:
/data/flashws/flashws/include/flashws/net/floop.h: In static member function ‘static void fws::FLoop< <template-parameter-1-1> >::PreExit(fws::FLoop< <template-parameter-1-1> >*)’:
/data/flashws/flashws/include/flashws/net/floop.h:540:13: error: there are no arguments to ‘ff_stop_run’ that depend on a template parameter, so a declaration of ‘ff_stop_run’ must be available [-fpermissive]
  540 |             ff_stop_run();
      |             ^~~~~~~~~~~
/data/flashws/flashws/include/flashws/net/floop.h:540:13: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
[ 42%] Linking CXX executable test_utils
In file included from /data/flashws/flashws/include/flashws/flashws.h:8,
                 from /data/flashws/flashws/tests/test-https-client/test_http_pool.cpp:1:
/data/flashws/flashws/include/flashws/net/floop.h: In static member function ‘static void fws::FLoop< <template-parameter-1-1> >::PreExit(fws::FLoop< <template-parameter-1-1> >*)’:
/data/flashws/flashws/include/flashws/net/floop.h:540:13: error: there are no arguments to ‘ff_stop_run’ that depend on a template parameter, so a declaration of ‘ff_stop_run’ must be available [-fpermissive]
  540 |             ff_stop_run();
      |             ^~~~~~~~~~~
/data/flashws/flashws/include/flashws/net/floop.h:540:13: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/data/flashws/flashws/tests/test-new-tcp-echo/server.cpp: In lambda function:
/data/flashws/flashws/tests/test-new-tcp-echo/server.cpp:137:44: warning: unused parameter ‘sock’ [-Wunused-parameter]
  137 |         tcp_socket.SetOnOpen([&](SockType &sock, void* user_data) {
      |                                  ~~~~~~~~~~^~~~
/data/flashws/flashws/tests/test-new-tcp-echo/server.cpp: In lambda function:
/data/flashws/flashws/tests/test-new-tcp-echo/server.cpp:250:101: warning: unused parameter ‘user_data’ [-Wunused-parameter]
  250 |         tcp_socket.SetOnError([&](SockType &sock, int error_code, std::string_view error_msg, void* user_data) {
      |                                                                                               ~~~~~~^~~~~~~~~
/data/flashws/flashws/tests/test-https-client/test_http_pool.cpp: In function ‘int test::TestHTTPClient()’:
/data/flashws/flashws/tests/test-https-client/test_http_pool.cpp:63:53: warning: missing initializer for member ‘test::Context::on_recv_msg’ [-Wmissing-field-initializers]
   63 |         Context ctx{0, 0, 0, &loop, &http_pool, 0, 0};
      |                                                     ^
/data/flashws/flashws/tests/test-https-client/test_http_pool.cpp:63:53: warning: missing initializer for member ‘test::Context::on_error’ [-Wmissing-field-initializers]
/data/flashws/flashws/tests/test-https-client/test_http_pool.cpp: In lambda function:
/data/flashws/flashws/tests/test-https-client/test_http_pool.cpp:100:71: warning: unused parameter ‘http’ [-Wunused-parameter]
  100 |             auto on_error = [](fws::HTTPClientPool<true>::ClientType &http, std::string_view reason) {
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/data/flashws/flashws/tests/test-https-client/test_http_pool.cpp: In lambda function:
/data/flashws/flashws/tests/test-https-client/test_http_pool.cpp:109:50: warning: unused parameter ‘loop’ [-Wunused-parameter]
  109 |         loop.SetOnEventFunc([&ctx](fws::FLoop<>& loop) {
      |                                    ~~~~~~~~~~~~~~^~~~
In file included from /data/flashws/flashws/include/flashws/flashws.h:8,
                 from /data/flashws/flashws/tests/test-https-client/https_client.cpp:4:
/data/flashws/flashws/include/flashws/net/floop.h: In instantiation of ‘static void fws::FLoop< <template-parameter-1-1> >::PreExit(fws::FLoop< <template-parameter-1-1> >*) [with Allocator = fws::FlashAllocator<char>]’:
/data/flashws/flashws/include/flashws/net/floop.h:552:24:   required from ‘static int fws::FLoop< <template-parameter-1-1> >::OneStep(void*) [with Allocator = fws::FlashAllocator<char>]’
/data/flashws/flashws/include/flashws/net/floop.h:334:19:   required from ‘void fws::FLoop< <template-parameter-1-1> >::Run() [with Allocator = fws::FlashAllocator<char>]’
/data/flashws/flashws/tests/test-https-client/https_client.cpp:97:17:   required from here
/data/flashws/flashws/include/flashws/net/floop.h:540:24: error: ‘ff_stop_run’ was not declared in this scope
  540 |             ff_stop_run();
      |             ~~~~~~~~~~~^~
In file included from /data/flashws/flashws/include/flashws/flashws.h:8,
                 from /data/flashws/flashws/tests/test-new-tcp-echo/server.cpp:1:
/data/flashws/flashws/include/flashws/net/floop.h: In instantiation of ‘static void fws::FLoop< <template-parameter-1-1> >::PreExit(fws::FLoop< <template-parameter-1-1> >*) [with Allocator = fws::FlashAllocator<char>]’:
/data/flashws/flashws/include/flashws/net/floop.h:552:24:   required from ‘static int fws::FLoop< <template-parameter-1-1> >::OneStep(void*) [with Allocator = fws::FlashAllocator<char>]’
/data/flashws/flashws/include/flashws/net/floop.h:334:19:   required from ‘void fws::FLoop< <template-parameter-1-1> >::Run() [with Allocator = fws::FlashAllocator<char>]’
/data/flashws/flashws/tests/test-new-tcp-echo/server.cpp:269:26:   required from here
/data/flashws/flashws/include/flashws/net/floop.h:540:24: error: ‘ff_stop_run’ was not declared in this scope
  540 |             ff_stop_run();
      |             ~~~~~~~~~~~^~
In file included from /data/flashws/flashws/include/flashws/flashws.h:8,
                 from /data/flashws/flashws/tests/test-https-client/test_http_pool.cpp:1:
/data/flashws/flashws/include/flashws/net/floop.h: In instantiation of ‘static void fws::FLoop< <template-parameter-1-1> >::PreExit(fws::FLoop< <template-parameter-1-1> >*) [with Allocator = fws::FlashAllocator<char>]’:
/data/flashws/flashws/include/flashws/net/floop.h:552:24:   required from ‘static int fws::FLoop< <template-parameter-1-1> >::OneStep(void*) [with Allocator = fws::FlashAllocator<char>]’
/data/flashws/flashws/include/flashws/net/floop.h:334:19:   required from ‘void fws::FLoop< <template-parameter-1-1> >::Run() [with Allocator = fws::FlashAllocator<char>]’
/data/flashws/flashws/tests/test-https-client/test_http_pool.cpp:130:17:   required from here
/data/flashws/flashws/include/flashws/net/floop.h:540:24: error: ‘ff_stop_run’ was not declared in this scope
  540 |             ff_stop_run();
      |             ~~~~~~~~~~~^~
In file included from /data/flashws/flashws/include/flashws/flashws.h:8,
                 from /data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:1:
/data/flashws/flashws/include/flashws/net/floop.h: In static member function ‘static void fws::FLoop< <template-parameter-1-1> >::PreExit(fws::FLoop< <template-parameter-1-1> >*)’:
/data/flashws/flashws/include/flashws/net/floop.h:540:13: error: there are no arguments to ‘ff_stop_run’ that depend on a template parameter, so a declaration of ‘ff_stop_run’ must be available [-fpermissive]
  540 |             ff_stop_run();
      |             ^~~~~~~~~~~
/data/flashws/flashws/include/flashws/net/floop.h:540:13: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp: In lambda function:
/data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:165:51: warning: unused parameter ‘w_socket’ [-Wunused-parameter]
  165 |         ws_socket.SetOnNewConnection([](WSSocket &w_socket, std::string_view req_uri,
      |                                         ~~~~~~~~~~^~~~~~~~
/data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:165:78: warning: unused parameter ‘req_uri’ [-Wunused-parameter]
  165 |         ws_socket.SetOnNewConnection([](WSSocket &w_socket, std::string_view req_uri,
      |                                                             ~~~~~~~~~~~~~~~~~^~~~~~~
/data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:166:58: warning: unused parameter ‘host’ [-Wunused-parameter]
  166 |                                         std::string_view host, std::string_view origin,
      |                                         ~~~~~~~~~~~~~~~~~^~~~
/data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:166:81: warning: unused parameter ‘origin’ [-Wunused-parameter]
  166 |                                         std::string_view host, std::string_view origin,
      |                                                                ~~~~~~~~~~~~~~~~~^~~~~~
/data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:169:59: warning: unused parameter ‘resp_sub_protocol’ [-Wunused-parameter]
  169 |                                         std::string_view &resp_sub_protocol,
      |                                         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:170:59: warning: unused parameter ‘resp_extensions’ [-Wunused-parameter]
  170 |                                         std::string_view &resp_extensions, void *user_data) {
      |                                         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
make[2]: *** [test-https-client/CMakeFiles/new_https_client.dir/build.make:76: test-https-client/CMakeFiles/new_https_client.dir/https_client.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1349: test-https-client/CMakeFiles/new_https_client.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** [test-new-tcp-echo/CMakeFiles/tcp_echo_server.dir/build.make:76: test-new-tcp-echo/CMakeFiles/tcp_echo_server.dir/server.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1323: test-new-tcp-echo/CMakeFiles/tcp_echo_server.dir/all] Error 2
In file included from /data/flashws/flashws/include/flashws/flashws.h:8,
                 from /data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:1:
/data/flashws/flashws/include/flashws/net/floop.h: In instantiation of ‘static void fws::FLoop< <template-parameter-1-1> >::PreExit(fws::FLoop< <template-parameter-1-1> >*) [with Allocator = fws::FlashAllocator<char>]’:
/data/flashws/flashws/include/flashws/net/floop.h:552:24:   required from ‘static int fws::FLoop< <template-parameter-1-1> >::OneStep(void*) [with Allocator = fws::FlashAllocator<char>]’
/data/flashws/flashws/include/flashws/net/floop.h:334:19:   required from ‘void fws::FLoop< <template-parameter-1-1> >::Run() [with Allocator = fws::FlashAllocator<char>]’
/data/flashws/flashws/tests/new-ws-echo/test_ws_server.cpp:265:21:   required from here
/data/flashws/flashws/include/flashws/net/floop.h:540:24: error: ‘ff_stop_run’ was not declared in this scope
  540 |             ff_stop_run();
      |             ~~~~~~~~~~~^~
make[2]: *** [test-https-client/CMakeFiles/http_pool.dir/build.make:76: test-https-client/CMakeFiles/http_pool.dir/test_http_pool.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1401: test-https-client/CMakeFiles/http_pool.dir/all] Error 2
make[2]: *** [new-ws-echo/CMakeFiles/test_ws_server.dir/build.make:76: new-ws-echo/CMakeFiles/test_ws_server.dir/test_ws_server.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1453: new-ws-echo/CMakeFiles/test_ws_server.dir/all] Error 2
[ 42%] Built target test_search
[ 42%] Built target test_utils
make: *** [Makefile:156: all] Error 2

@renzibei
Copy link
Owner

renzibei commented Apr 8, 2024

This error is caused by the fact that the latest version of flashws rely on a pull request created by me, which has not been merged. You can rebuild and install the f-stack using my fork of f-stack.

@bruHFT
Copy link

bruHFT commented Apr 8, 2024

Thank you very much will check this out tomorrow!

@bruHFT
Copy link

bruHFT commented Apr 9, 2024

I compiled F-stack using your fork. It got a bit further but make -j6 froze making the whole system unresponsive.

root@ip-172-31-13-133:/data/build/flashws/tests/build# make -j6
[  1%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_encoding.c.o
[  3%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_encoding.c.o
[  5%] Building CXX object test-https-client/CMakeFiles/test_search.dir/test_search.cpp.o
[  7%] Building CXX object test-https-client/CMakeFiles/new_https_client.dir/https_client.cpp.o
[  8%] Building CXX object test-new-tcp-echo/CMakeFiles/tcp_echo_server.dir/server.cpp.o
[ 10%] Building CXX object test-https-client/CMakeFiles/http_pool.dir/test_http_pool.cpp.o
[ 12%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_histogram.c.o
[ 14%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_histogram.c.o
[ 16%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_histogram_log.c.o
[ 17%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_histogram_log.c.o
[ 19%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_interval_recorder.c.o
[ 21%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_interval_recorder.c.o
[ 23%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_thread.c.o
[ 25%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_thread.c.o
[ 26%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_time.c.o
[ 28%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_time.c.o
[ 30%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram.dir/hdr_writer_reader_phaser.c.o
[ 32%] Building C object HdrHistogram_c/src/CMakeFiles/hdr_histogram_static.dir/hdr_writer_reader_phaser.c.o
/data/build/flashws/tests/test-https-client/test_search.cpp: In function ‘int main(int, char**)’:
/data/build/flashws/tests/test-https-client/test_search.cpp:31:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
   31 | int main(int argc, char *argv[])
      |          ~~~~^~~~
/data/build/flashws/tests/test-https-client/test_search.cpp:31:26: warning: unused parameter ‘argv’ [-Wunused-parameter]
   31 | int main(int argc, char *argv[])
      |                    ~~~~~~^~~~~~
[ 33%] Linking C static library libhdr_histogram_static.a
[ 35%] Linking C shared library libhdr_histogram.so
[ 35%] Built target hdr_histogram_static
[ 35%] Built target hdr_histogram
[ 37%] Building CXX object new-ws-echo/CMakeFiles/test_ws_server.dir/test_ws_server.cpp.o
[ 39%] Building CXX object test-utils/CMakeFiles/test_utils.dir/test_utils.cpp.o
[ 41%] Linking CXX executable test_search
/data/build/flashws/tests/test-utils/test_utils.cpp: In function ‘int main(int, const char**)’:
/data/build/flashws/tests/test-utils/test_utils.cpp:336:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
  336 | int main(int argc, const char** argv) {
      |          ~~~~^~~~
/data/build/flashws/tests/test-utils/test_utils.cpp:336:33: warning: unused parameter ‘argv’ [-Wunused-parameter]
  336 | int main(int argc, const char** argv) {
      |                    ~~~~~~~~~~~~~^~~~
/data/build/flashws/tests/test-utils/test_utils.cpp: In instantiation of ‘int64_t test::PureSha1AndBase(const char*, char*, const char*, const char*) [with long unsigned int client_key_len = 24; long unsigned int uuid_len = 36; int64_t = long int]’:
/data/build/flashws/tests/test-utils/test_utils.cpp:272:61:   required from here
/data/build/flashws/tests/test-utils/test_utils.cpp:217:119: warning: unused parameter ‘ref_sha1’ [-Wunused-parameter]
  217 |     int64_t PureSha1AndBase(const char* FWS_RESTRICT client_key, char* FWS_RESTRICT dst_buf, const char* FWS_RESTRICT ref_sha1, const char* FWS_RESTRICT ref_dst) {
      |                                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/build/flashws/tests/test-https-client/test_http_pool.cpp: In function ‘int test::TestHTTPClient()’:
/data/build/flashws/tests/test-https-client/test_http_pool.cpp:63:53: warning: missing initializer for member ‘test::Context::on_recv_msg’ [-Wmissing-field-initializers]
   63 |         Context ctx{0, 0, 0, &loop, &http_pool, 0, 0};
      |                                                     ^
/data/build/flashws/tests/test-https-client/test_http_pool.cpp:63:53: warning: missing initializer for member ‘test::Context::on_error’ [-Wmissing-field-initializers]
/data/build/flashws/tests/test-https-client/test_http_pool.cpp: In lambda function:
/data/build/flashws/tests/test-https-client/test_http_pool.cpp:100:71: warning: unused parameter ‘http’ [-Wunused-parameter]
  100 |             auto on_error = [](fws::HTTPClientPool<true>::ClientType &http, std::string_view reason) {
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/data/build/flashws/tests/test-https-client/test_http_pool.cpp: In lambda function:
/data/build/flashws/tests/test-https-client/test_http_pool.cpp:109:50: warning: unused parameter ‘loop’ [-Wunused-parameter]
  109 |         loop.SetOnEventFunc([&ctx](fws::FLoop<>& loop) {
      |                                    ~~~~~~~~~~~~~~^~~~
/data/build/flashws/tests/test-https-client/https_client.cpp: In lambda function:
/data/build/flashws/tests/test-https-client/https_client.cpp:67:49: warning: unused parameter ‘sock’ [-Wunused-parameter]
   67 |         socket.SetOnReadable([](fws::TLSSocket &sock, fws::IOBuffer &&buf, void *user_data){
      |                                 ~~~~~~~~~~~~~~~~^~~~
/data/build/flashws/tests/test-https-client/https_client.cpp:67:82: warning: unused parameter ‘user_data’ [-Wunused-parameter]
   67 |         socket.SetOnReadable([](fws::TLSSocket &sock, fws::IOBuffer &&buf, void *user_data){
      |                                                                            ~~~~~~^~~~~~~~~
/data/build/flashws/tests/test-https-client/https_client.cpp: In lambda function:
/data/build/flashws/tests/test-https-client/https_client.cpp:75:51: warning: unused parameter ‘sock’ [-Wunused-parameter]
   75 |         socket.SetOnClose([&loop](fws::TLSSocket &sock, void *user_data){
      |                                   ~~~~~~~~~~~~~~~~^~~~
/data/build/flashws/tests/test-https-client/https_client.cpp:75:63: warning: unused parameter ‘user_data’ [-Wunused-parameter]
   75 |         socket.SetOnClose([&loop](fws::TLSSocket &sock, void *user_data){
      |                                                         ~~~~~~^~~~~~~~~
/data/build/flashws/tests/test-https-client/https_client.cpp: In lambda function:
/data/build/flashws/tests/test-https-client/https_client.cpp:80:46: warning: unused parameter ‘sock’ [-Wunused-parameter]
   80 |         socket.SetOnError([](fws::TLSSocket& sock, int code, std::string_view reason, void *user_data) {
      |                              ~~~~~~~~~~~~~~~~^~~~
/data/build/flashws/tests/test-https-client/https_client.cpp:80:93: warning: unused parameter ‘user_data’ [-Wunused-parameter]
   80 |         socket.SetOnError([](fws::TLSSocket& sock, int code, std::string_view reason, void *user_data) {
      |                                                                                       ~~~~~~^~~~~~~~~
/data/build/flashws/tests/test-new-tcp-echo/server.cpp: In lambda function:
/data/build/flashws/tests/test-new-tcp-echo/server.cpp:137:44: warning: unused parameter ‘sock’ [-Wunused-parameter]
  137 |         tcp_socket.SetOnOpen([&](SockType &sock, void* user_data) {
      |                                  ~~~~~~~~~~^~~~
/data/build/flashws/tests/test-new-tcp-echo/server.cpp: In lambda function:
/data/build/flashws/tests/test-new-tcp-echo/server.cpp:250:101: warning: unused parameter ‘user_data’ [-Wunused-parameter]
  250 |         tcp_socket.SetOnError([&](SockType &sock, int error_code, std::string_view error_msg, void* user_data) {
      |                                                                                               ~~~~~~^~~~~~~~~
[ 42%] Linking CXX executable test_utils
/data/build/flashws/tests/new-ws-echo/test_ws_server.cpp: In lambda function:
/data/build/flashws/tests/new-ws-echo/test_ws_server.cpp:165:51: warning: unused parameter ‘w_socket’ [-Wunused-parameter]
  165 |         ws_socket.SetOnNewConnection([](WSSocket &w_socket, std::string_view req_uri,
      |                                         ~~~~~~~~~~^~~~~~~~
/data/build/flashws/tests/new-ws-echo/test_ws_server.cpp:165:78: warning: unused parameter ‘req_uri’ [-Wunused-parameter]
  165 |         ws_socket.SetOnNewConnection([](WSSocket &w_socket, std::string_view req_uri,
      |                                                             ~~~~~~~~~~~~~~~~~^~~~~~~
/data/build/flashws/tests/new-ws-echo/test_ws_server.cpp:166:58: warning: unused parameter ‘host’ [-Wunused-parameter]
  166 |                                         std::string_view host, std::string_view origin,
      |                                         ~~~~~~~~~~~~~~~~~^~~~
/data/build/flashws/tests/new-ws-echo/test_ws_server.cpp:166:81: warning: unused parameter ‘origin’ [-Wunused-parameter]
  166 |                                         std::string_view host, std::string_view origin,
      |                                                                ~~~~~~~~~~~~~~~~~^~~~~~
/data/build/flashws/tests/new-ws-echo/test_ws_server.cpp:169:59: warning: unused parameter ‘resp_sub_protocol’ [-Wunused-parameter]
  169 |                                         std::string_view &resp_sub_protocol,
      |                                         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/data/build/flashws/tests/new-ws-echo/test_ws_server.cpp:170:59: warning: unused parameter ‘resp_extensions’ [-Wunused-parameter]
  170 |                                         std::string_view &resp_extensions, void *user_data) {
      |                                         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~

@renzibei
Copy link
Owner

renzibei commented Apr 9, 2024

You can omit the -j6 parameter if the cpu resource is limited.

@bruHFT
Copy link

bruHFT commented Apr 9, 2024

thanks that worked! how to run the http client?

root@ip-172-31-13-133:/data/build/flashws/tests/build/test-https-client# ./new_https_client 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==31483==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x555556cb8e86 bp 0x7fffffffe040 sp 0x7fffffffdd70 T0)
==31483==The signal is caused by a READ memory access.
==31483==Hint: address points to the zero page.
    #0 0x555556cb8e86 in kern_kqueue (/data/build/flashws/tests/build/test-https-client/new_https_client+0x1764e86)
    #1 0x555556c8fdc8 in ff_kqueue (/data/build/flashws/tests/build/test-https-client/new_https_client+0x173bdc8)
    #2 0x555556f07001 in fws::CreateFQueue(int) /data/build/flashws/include/flashws/net/fevent.h:409
    #3 0x555556f07001 in int fws::FLoop<fws::FlashAllocator<char> >::Init<true>() /data/build/flashws/include/flashws/net/floop.h:175
    #4 0x555556eea349 in test::TestHTTPSClient() /data/build/flashws/tests/test-https-client/https_client.cpp:15
    #5 0x555556eeab13 in main /data/build/flashws/tests/test-https-client/https_client.cpp:107
    #6 0x7ffff6629d8f  (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f)
    #7 0x7ffff6629e3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f)
    #8 0x5555564dda24 in _start (/data/build/flashws/tests/build/test-https-client/new_https_client+0xf89a24)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/data/build/flashws/tests/build/test-https-client/new_https_client+0x1764e86) in kern_kqueue
==31483==ABORTING

@renzibei
Copy link
Owner

renzibei commented Apr 9, 2024

If you want to use f-stack with flashws, you need to pass the config file to it, which is required by f-stack. The ip info is written in the config file. You can check the hello world example in the f-stack to get started.

@moscovium115
Copy link
Author

moscovium115 commented Apr 9, 2024

Thanks, with passing the config file to f-stack do you mean? ./example/helloworld --conf config.ini --proc-type=primary --proc-id=0 using the same command slightly adjusted to run test_https_client does not work and results in the same error as before

@renzibei
Copy link
Owner

renzibei commented Apr 9, 2024

Yes, it's the parameters like --conf config.ini --proc-type=primary --proc-id=0.
Let me check the https example.

@renzibei
Copy link
Owner

renzibei commented Apr 9, 2024

I made some updates, you can try again with the configs set.

@bruHFT
Copy link

bruHFT commented Apr 9, 2024

Thank you. It seems to work now, but this is just simply the F-stack hello world example or not?

root@ip-172-31-7-47:/data/flashws/tests/build/test-https-client# ./new_https_client  --conf /data/f-stack/example/config.ini --proc-type=primary  --proc-id=0
[dpdk]: lcore_mask=1
[dpdk]: channel=4
[dpdk]: promiscuous=1
[dpdk]: numa_on=1
[dpdk]: tx_csum_offoad_skip=0
[dpdk]: tso=0
[dpdk]: vlan_strip=1
[dpdk]: idle_sleep=0
[dpdk]: pkt_tx_delay=100
[dpdk]: symmetric_rss=0
[dpdk]: port_list=0
[dpdk]: nb_vdev=0
[dpdk]: nb_bond=0
[pcap]: enable=0
[pcap]: snaplen=96
[pcap]: savelen=16777216
[pcap]: savepath=.
[port0]: addr=192.168.1.2
[port0]: netmask=255.255.255.0
[port0]: broadcast=192.168.1.255
[port0]: gateway=192.168.1.1
[freebsd.boot]: hz=100
[freebsd.boot]: fd_reserve=1024
[freebsd.boot]: kern.ipc.maxsockets=262144
[freebsd.boot]: net.inet.tcp.syncache.hashsize=4096
[freebsd.boot]: net.inet.tcp.syncache.bucketlimit=100
[freebsd.boot]: net.inet.tcp.tcbhashsize=65536
[freebsd.boot]: kern.ncallout=262144
[freebsd.boot]: kern.features.inet6=1
[freebsd.sysctl]: kern.ipc.somaxconn=32768
[freebsd.sysctl]: kern.ipc.maxsockbuf=16777216
[freebsd.sysctl]: net.add_addr_allfibs=1
[freebsd.sysctl]: net.link.ether.inet.maxhold=5
[freebsd.sysctl]: net.inet.tcp.fast_finwait2_recycle=1
[freebsd.sysctl]: net.inet.tcp.sendspace=16384
[freebsd.sysctl]: net.inet.tcp.recvspace=8192
[freebsd.sysctl]: net.inet.tcp.cc.algorithm=cubic
[freebsd.sysctl]: net.inet.tcp.sendbuf_max=16777216
[freebsd.sysctl]: net.inet.tcp.recvbuf_max=16777216
[freebsd.sysctl]: net.inet.tcp.sendbuf_auto=1
[freebsd.sysctl]: net.inet.tcp.recvbuf_auto=1
[freebsd.sysctl]: net.inet.tcp.sendbuf_inc=16384
[freebsd.sysctl]: net.inet.tcp.sack.enable=1
[freebsd.sysctl]: net.inet.tcp.blackhole=1
[freebsd.sysctl]: net.inet.tcp.msl=2000
[freebsd.sysctl]: net.inet.tcp.delayed_ack=1
[freebsd.sysctl]: net.inet.tcp.rfc1323=1
[freebsd.sysctl]: net.inet.udp.blackhole=1
[freebsd.sysctl]: net.inet.ip.redirect=0
[freebsd.sysctl]: net.inet.ip.forwarding=0
[freebsd.sysctl]: net.inet6.ip6.auto_linklocal=1
[freebsd.sysctl]: net.inet6.ip6.accept_rtadv=2
[freebsd.sysctl]: net.inet6.icmp6.rediraccept=1
[freebsd.sysctl]: net.inet6.ip6.forwarding=0
[freebsd.sysctl]: net.inet.tcp.functions_default=freebsd
[freebsd.sysctl]: net.inet.tcp.hpts.skip_swi=1
[freebsd.sysctl]: net.inet.tcp.hpts.minsleep=250
[freebsd.sysctl]: net.inet.tcp.hpts.maxsleep=51200
f-stack -c1 -n4 --proc-type=primary 
EAL: Detected CPU lcores: 2
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: Probe PCI driver: net_ena (1d0f:ec20) device: 0000:00:06.0 (socket -1)
TELEMETRY: No legacy callbacks, legacy socket not created
lcore: 0, port: 0, queue: 0
create mbuf pool on socket 0
create ring:dispatch_ring_p0_q0 success, 2047 ring entries are now free!
Port 0 MAC:0A:1F:01:B2:CF:A5
Port 0 modified RSS hash function based on hardware support,requested:0x2003ffffc configured:0xc30
RX checksum offload supported
TX ip checksum offload supported
TX TCP&UDP checksum offload supported
TSO is disabled
port[0]: rss table size: 128
ena_rss_hash_set(): Setting RSS hash fields is not supported. Using default values: 0xc30
set port 0 to promiscuous mode error

Checking link statusdone
Port 0 Link Up - speed 0 Mbps - full-duplex
link_elf_lookup_symbol: missing symbol hash table
link_elf_lookup_symbol: missing symbol hash table
Timecounters tick every 10.000 msec
WARNING: Adding ifaddrs to all fibs has been turned off by default. Consider tuning net.add_addr_allfibs if needed
Attempting to load tcp_bbr
tcp_bbr is now available
TCP Hpts created 1 swi interrupt threads and bound 0 to cpus
Timecounter "ff_clock" frequency 100 Hz quality 1
TCP_ratelimit: Is now initialized
f-stack-0: No addr6 config found.
f-stack-0: Ethernet address: 0a:1f:01:b2:cf:a5

@renzibei
Copy link
Owner

renzibei commented Apr 9, 2024

The program you run should use HTTP GET to fetch the http content from some sites like google.com and print to stdout.
Have you modified the config.ini to suit your machine? Is 192.168.1.2 your ip?

@renzibei
Copy link
Owner

renzibei commented Apr 9, 2024

You can refer to this config, and change the ip and gateway to suit your machine.

@bruHFT
Copy link

bruHFT commented Apr 9, 2024

Ah thank you! I'm using AWS and have added an additional NIC, so have to figure out where I can exactly find gateway, but IP is known. Will follow up later

@moscovium115
Copy link
Author

Hi! I reattempted to use F-stack on Amazon Linux (AL) this time instead of Ubuntu since AL automatically sets up the additional NIC I added.

Now the helloworld of F stack application was working fine, since when interacting with the server on the client machine I got the following:

Screenshot from 2024-04-24 13-23-47

But running the https client of flashws still does not fetch any requests. Have you got any ideas?

@renzibei
Copy link
Owner

renzibei commented Apr 24, 2024

I need more information to know the situation, including the Code, the network structure and configurations. For example, did you let DPDK to take the ownership of the NIC in the client machine? And is the client‘s NIC in the same sub-network as the server? What's the security group settings? Did you make sure the client turned off the TLS, if the server is not running a https service?

@renzibei
Copy link
Owner

And for test, you can use the original https client code, which send a GET request to a public website, and assign a puiblic ip to the network interface that would be controlled by DPDK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants