Giter Site home page Giter Site logo

ntap / warpcore Goto Github PK

View Code? Open in Web Editor NEW
95.0 19.0 9.0 2.67 MB

User-space UDP/IP stack on top of netmap

License: BSD 2-Clause "Simplified" License

R 1.11% C 79.82% CMake 4.37% C++ 12.60% Dockerfile 0.07% Shell 2.02%
ietf quic bsd-license netmap freebsd linux udp ipv4 stack socket-api

warpcore's People

Contributors

larseggert avatar sparcplug avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

warpcore's Issues

Error: unknown type name 'fd_set'

Hi! I want to run a QUIC example based on warpcore. I encountered an error when making the project. The log is:
/riotproject/lib/deps/warpcore/lib/src/backend.h:88:5: error: unknown type name 'fd_set' 88 | fd_set fds;
I searched the warpcore and couldn't find the definition of ‘fd_set’. Is it a bug? or how could I fix the error? Thanks!

Add ARP cache

Add an ARP cache instead of doing repeated lookups in w_connect()

seg fault on test_warp

Not sure if it is relevant or not but got a seg fault when trying to run test_warp

0.000   w_init warpcore.c:423 lo addr 0:0:0:0:0:0, MTU 65535, speed 4294967G, link up
        w_init warpcore.c:465 lo has IP addr 127.0.0.1/255.0.0.0
        backend_init backend_netmap.c:101 lo is a loopback, using left netmap pipe
        arp_cache_update arp.c:95 ARP cache entry: 127.0.0.1 is at 0:0:0:0:0:0
0.055   backend_init backend_netmap.c:146 tx ring 0 has 1024 slots (1026-2049)
0.057   backend_init backend_netmap.c:153 rx ring 0 has 1024 slots (2-1025)
0.082   backend_init backend_netmap.c:172 can only allocate 19112/65536 extra buffers
        w_init warpcore.c:486 warpcore/netmap 0.27.0 using 19112 2048-byte bufs on lo
0.083   w_init warpcore.c:423 lo addr 0:0:0:0:0:0, MTU 65535, speed 4294967G, link up
0.104   w_init warpcore.c:465 lo has IP addr 127.0.0.1/255.0.0.0
        backend_init backend_netmap.c:101 lo is a loopback, using right netmap pipe
0.108   arp_cache_update arp.c:95 ARP cache entry: 127.0.0.1 is at 0:0:0:0:0:0
0.125   backend_init backend_netmap.c:146 tx ring 0 has 1024 slots (2-1025)
        backend_init backend_netmap.c:153 rx ring 0 has 1024 slots (1026-2049)
0.126   backend_init backend_netmap.c:172 can only allocate 0/65536 extra buffers
0.126   backend_init backend_netmap.c:173 ABORT: assertion failed
        b->req->nr_arg3 != 0
        got some extra buffers errno 0 =
        /usr/lib/x86_64-linux-gnu/libasan.so.4(+0x558c0) [0x7ffff6e6f8c0]
        util_die at /usr/local/src/warpcore/lib/src/util.c:224
        backend_init at /usr/local/src/warpcore/lib/src/backend_netmap.c:176
        w_init at /usr/local/src/warpcore/lib/src/warpcore.c:483
        init at /usr/local/src/warpcore/test/common.c:123
        main at /usr/local/src/warpcore/test/test_sock.c:39
        /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7ffff5b361c1]
        _start at ??:?

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff5b4df5d in __GI_abort () at abort.c:90
#2  0x0000555555595e2f in util_die (func=0x5555555c6fc0 <__func__.7064> "backend_init", file=0x5555555c6160 "/usr/local/src/warpcore/lib/src/backend_netmap.c", line=173)
    at /usr/local/src/warpcore/lib/src/util.c:268
#3  0x000055555559b737 in backend_init (w=0x60c000000100, nbufs=65536, is_lo=true, is_left=false) at /usr/local/src/warpcore/lib/src/backend_netmap.c:173
#4  0x00005555555a89a9 in w_init (ifname=0x7fffffffe2c0 "lo", rip=0, nbufs=65536) at /usr/local/src/warpcore/lib/src/warpcore.c:480
#5  0x0000555555594bb3 in init (len=65536) at /usr/local/src/warpcore/test/common.c:123
#6  0x0000555555594dea in main () at /usr/local/src/warpcore/test/test_sock.c:38
(gdb) up
#1  0x00007ffff5b4df5d in __GI_abort () at abort.c:90
90      abort.c: No such file or directory.
(gdb) up
#2  0x0000555555595e2f in util_die (func=0x5555555c6fc0 <__func__.7064> "backend_init", file=0x5555555c6160 "/usr/local/src/warpcore/lib/src/backend_netmap.c", line=173)
    at /usr/local/src/warpcore/lib/src/util.c:268
268         abort();
(gdb) up
#3  0x000055555559b737 in backend_init (w=0x60c000000100, nbufs=65536, is_lo=true, is_left=false) at /usr/local/src/warpcore/lib/src/backend_netmap.c:173
173         ensure(b->req->nr_arg3 != 0, "got some extra buffers");
(gdb) print b->req->nr_arg3
$1 = 0

Bind NIC IRQ to core

Similar to plat_setaffinity(), which binds the thread to a core, we should offer binding the NIC IRQ to a core. Unfortunately, the methods for getting IRQ information out of the kernel are disgustingly ugly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.