lkml.org 
[lkml]   [2023]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC PATCH 0/7] Rust Socket abstractions
Date
This patch series is intended to create Rust abstractions for Sockets
and other fundamental network entities.

Specifically, it was added:
- Ip address and Socket address wrappers (for `in_addr`, `in6_addr`,
`sockaddr_in`, `sockaddr_in6`, `sockaddr_storage`).
- Socket wrapper.
- Socket flags and options enums.
- TCP and UDP specific abstractions over the Rust Socket structure.

This series is a RFC because I would appreciate some feedback about:
- The structure of the module: is the division of the files and modules
appropriate or should it be more or less fine-grained?
Also, should the `net` module export all the structures of its
submodules? I noticed that it is done in the standard library.
- Whether the documentation is comprehensive enough.
- A few other specific questions, written in the individual patches.

I would greatly appreciate any kind of feedback or opinion.
I am pretty new to the patch/mailing list world, so please point out any
mistake I might make.

The changes in this patch series are based on top of the latest commit
of `rust-next` in the Rust git tree:
19cd7b5d229c ("btf, scripts: rust: drop is_rust_module.sh")

Michele Dalle Rive (7):
rust: net: add net module files and shared enums.
rust: net: add ip and socket address bindings.
rust: net: add socket-related flags and flagset.
rust: net: add socket wrapper.
rust: net: implement socket options API.
rust: net: add socket TCP wrappers.
rust: net: add socket UDP wrappers.

rust/bindings/bindings_helper.h | 3 +
rust/kernel/lib.rs | 2 +
rust/kernel/net.rs | 185 +++++
rust/kernel/net/addr.rs | 1215 ++++++++++++++++++++++++++++++
rust/kernel/net/ip.rs | 73 ++
rust/kernel/net/socket.rs | 641 ++++++++++++++++
rust/kernel/net/socket/flags.rs | 467 ++++++++++++
rust/kernel/net/socket/opts.rs | 1222 +++++++++++++++++++++++++++++++
rust/kernel/net/tcp.rs | 252 +++++++
rust/kernel/net/udp.rs | 182 +++++
10 files changed, 4242 insertions(+)
create mode 100644 rust/kernel/net.rs
create mode 100644 rust/kernel/net/addr.rs
create mode 100644 rust/kernel/net/ip.rs
create mode 100644 rust/kernel/net/socket.rs
create mode 100644 rust/kernel/net/socket/flags.rs
create mode 100644 rust/kernel/net/socket/opts.rs
create mode 100644 rust/kernel/net/tcp.rs
create mode 100644 rust/kernel/net/udp.rs

--
2.41.0

\
 
 \ /
  Last update: 2023-08-14 11:26    [W:0.085 / U:0.688 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site