Comments (3)
I am not very familiar with raw ethernet. From the io_uring's point of view, what is it exactly that is needed?
To the best of my knowledge, io_uring itself will operate in a much higher level at the socket layer, no?
from glommio.
Because I have a RawFd
, I can use that pretty much directly with io_uring
. I wrote a quick blocking test which kind of works. The bit I'm stuck on is making it async. I figured glommio
might have some prior art in this area I could build on top of.
So I guess to alter my original question a bit: can I read/write a RawFd
(or OwnedFd
or whatever) with glommio
? If not, where could I look in the codebase for inspiration? The FD I'm using just happens to be hooked up to tx/rx raw ethernet packets but from io_uring's perspective it's just data.
from glommio.
The way I would do this, is at the sys/uring.rs level, try our best to either reuse the existing functions (open_at
and one of the read/writes should work?), and if changes are made, try to make it in a way that we don't have special reads and writes just for that.
But at the API level (src/io), then have a specialized API that deals with raw file descriptors and keep as high level, specialized, and hard to misuse as possible (I wouldn't go as far as specializing to ethernet frames, but certainly to a rawfd - but that's mostly because I don't understand ethernet well, and don't see any benefit)
I don't think this exists today, so you'd have to add it.
from glommio.
Related Issues (20)
- Document what happens on non-Linux+io-uring-support HOT 3
- RawTask memory leak HOT 5
- `Directory::open` fails consistently where `std::fs::` succeeds
- this is no core_cpus_list file, how to fix it?
- What's the problem with performance, implementation or usage? HOT 6
- Is it possible to make a release? HOT 3
- Harden read buffer pool HOT 2
- RFC: A Send safe `DmaFile` to let the fd be shared across threads
- Valgrind complains about uninitialized memory in buffer returned by read_at_aligned
- Statx is invoked on path instead of fd
- RFC: 0-copy support for writing reads HOT 2
- Can't build an application that using Glommio HOT 5
- Timer adds a surprising amount of delay vs thread::sleep HOT 3
- Timer documentation says confusing things about the task queue HOT 4
- Any interest in adding advisory lock support?
- Implement `Send + Sync` for `ReadResult` HOT 2
- OS/kernel version recommendation HOT 2
- Using `DmaFile::create` without calling `DmaFile::open` first results in broken `probe_iopoll_support` check
- Panic when dropping RawTask HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glommio.