mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2026-09-08 23:57:59 +08:00
* feat: 新增veth和bridge结构体,尚未详细测试 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(net): 完善一下已有的bridge以及veth设备,增加一些调试信息 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(net): 完善veth网卡驱动,能通过测例;简单修改vridge设备,尚未测试 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(routing): 简单添加路由子系统,尚未完成 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(veth): 增加veth默认对端路由 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(socket): 恢复udp socket中的wait_queue等待 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(net): 补充bridge的实现 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(bridge): 更改测试程序 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 重命名测试程序 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 更改veth&beidge测试程序的toml Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 暂时添加route_iface以及route_table Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: draft router Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 实现简单的路由功能,未详细测试 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 添加netlink框架,内核相应的处理逻辑以及读取写入用户空间尚未完成 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(netlink): 完善netlink的读写部分,增加addr的内核处理逻辑 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 移动routing的位置 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 补充netlink的阻塞等待逻辑&&fmt Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(netns): 添加网络命名空间 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(netns): 删除全局路由,使用当前netns下的路由 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(netlink): 将netlink socket移入netns中 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 完成netlink addr消息的支持,增加测试程序 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(netlink): 消除一些warning Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * fix: 新建netns时插入loopback网卡到设备列表 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 将veth和bridge测试程序改用C完成 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(gdb): 增加gdb debug可选项 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * fix: 修复SockAddrIn结构体中的sin_addr字节序问题,确保正确处理IPv4地址 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 手糊实现路由功能,后续需要更改事件驱动 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(netlink): 补充getlink方法以及相关结构体 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * Refactor network driver interfaces and introduce NAPI support - Removed the default_iface parameter. - Introduced a new NAPI module to manage network polling and scheduling. - Updated the Iface trait to include a napi_struct method for NAPI support. - Modified Veth network interfaces to integrate with the new NAPI structure. - Refactored the Router implementation to remove unnecessary polling threads and wait queues. - Updated NetNamespace to manage a list of bridge devices. - Cleaned up various unused methods and comments across network-related files. Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 将virtio网卡的处理逻辑移动进ksoftirqd中 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(netlink): 暂时为多播消息添加allow unused,消除warning Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(nat): 实现SNAT和DNAT Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat(epoll): 更改epoll唤醒判断的逻辑,支持socket加入epoll Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 修改test_bind,防止爆内存 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 添加一个路由todo信息 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * fix: rebase主线之后修改冲突 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: fmt Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 清除无用日志 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 补充一个panic信息 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 将kernel文件夹重命名为kern Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> * feat: 删除netlink测试程序中的linux/netlink.h头文件 Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com> --------- Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
140 lines
4.6 KiB
TOML
140 lines
4.6 KiB
TOML
[package]
|
|
name = "dragonos_kernel"
|
|
version = "0.2.0"
|
|
edition = "2021"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
|
|
[lib]
|
|
crate-type = ["staticlib"]
|
|
|
|
[workspace]
|
|
members = ["crates/*"]
|
|
|
|
[features]
|
|
default = ["fatfs", "kvm", "fatfs-secure", "static_keys_test"]
|
|
# kvm
|
|
kvm = []
|
|
|
|
fatfs = []
|
|
fatfs-secure = ["fatfs"]
|
|
driver_ps2_mouse = []
|
|
|
|
# kprobe
|
|
kprobe_test = []
|
|
static_keys_test = []
|
|
|
|
# kstack_protect 开启该功能后,会开启内核栈保护功能。用于辅助检测栈溢出。(内核栈占用会*2)
|
|
kstack_protect = []
|
|
|
|
# 运行时依赖项
|
|
[dependencies]
|
|
acpi = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/acpi-rs.git", rev = "282df2af7b" }
|
|
asm_macros = { path = "crates/asm_macros" }
|
|
atomic_enum = "=0.2.0"
|
|
bit_field = "=0.10"
|
|
bitfield-struct = "=0.5.3"
|
|
bitflags = "=1.3.2"
|
|
bitmap = { path = "crates/bitmap" }
|
|
driver_base_macros = { "path" = "crates/driver_base_macros" }
|
|
elf = { version = "=0.7.2", default-features = false }
|
|
fdt = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/fdt", rev = "9862813020" }
|
|
# 一个no_std的hashmap、hashset
|
|
hashbrown = "=0.13.2"
|
|
ida = { path = "crates/ida" }
|
|
intertrait = { path = "crates/intertrait" }
|
|
kcmdline_macros = { path = "crates/kcmdline_macros" }
|
|
kdepends = { path = "crates/kdepends" }
|
|
klog_types = { path = "crates/klog_types" }
|
|
linkme = "=0.3.27"
|
|
num = { version = "=0.4.0", default-features = false }
|
|
num-derive = "=0.3"
|
|
num-traits = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/num-traits.git", rev = "1597c1c", default-features = false }
|
|
smoltcp = { version = "=0.12.0", default-features = false, features = [
|
|
"alloc",
|
|
"socket-raw",
|
|
"socket-udp",
|
|
"socket-tcp",
|
|
"socket-icmp",
|
|
"socket-dhcpv4",
|
|
"socket-dns",
|
|
"proto-ipv4",
|
|
"proto-ipv6",
|
|
"medium-ip",
|
|
] }
|
|
syscall_table_macros = { path = "crates/syscall_table_macros" }
|
|
system_error = { path = "crates/system_error" }
|
|
unified-init = { path = "crates/unified-init" }
|
|
virtio-drivers = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/virtio-drivers", rev = "415ab38ff9" }
|
|
wait_queue_macros = { path = "crates/wait_queue_macros" }
|
|
paste = "=1.0.14"
|
|
slabmalloc = { path = "crates/rust-slabmalloc" }
|
|
log = "0.4.21"
|
|
kprobe = { path = "crates/kprobe" }
|
|
lru = "0.12.3"
|
|
|
|
rbpf = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/rbpf", rev = "f31e471a29", default-features = false }
|
|
printf-compat = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/printf-compat", rev = "626801cb5f", default-features = false }
|
|
|
|
static-keys = { version = "=0.7" }
|
|
|
|
defer = "0.2.1"
|
|
cfg-if = { version = "1.0.0" }
|
|
derive_builder = { version = "0.20.2", default-features = false, features = [
|
|
"alloc",
|
|
] }
|
|
|
|
inherit-methods-macro = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/inherit-methods-macro", rev = "98f7e3e" }
|
|
|
|
# target为x86_64时,使用下面的依赖
|
|
[target.'cfg(target_arch = "x86_64")'.dependencies]
|
|
multiboot2 = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/multiboot2", rev = "05739aab40" }
|
|
raw-cpuid = "11.0.1"
|
|
x86 = "=0.52.0"
|
|
x86_64 = "=0.15.2"
|
|
uefi = { version = "=0.26.0", features = ["alloc"] }
|
|
uefi-raw = "=0.5.0"
|
|
|
|
# target为riscv64时,使用下面的依赖
|
|
[target.'cfg(target_arch = "riscv64")'.dependencies]
|
|
riscv = { git = "https://git.mirrors.dragonos.org.cn/DragonOS-Community/riscv.git", rev = "4241a97", features = [
|
|
"s-mode",
|
|
] }
|
|
byte-slice-cast = { version = "1.2.2", default-features = false }
|
|
sbi-rt = { version = "=0.0.3", features = ["legacy"] }
|
|
uefi = { version = "=0.26.0", features = ["alloc"] }
|
|
uefi-raw = "=0.5.0"
|
|
|
|
# target为loongarch64时,使用下面的依赖
|
|
[target.'cfg(target_arch = "loongarch64")'.dependencies]
|
|
loongArch64 = "=0.2.5"
|
|
|
|
# 由于unwinding库不支持loongarch64架构,因此需要排除该依赖项
|
|
[target.'cfg(not(target_arch = "loongarch64"))'.dependencies]
|
|
unwinding = { version = "=0.2.8", default-features = false, features = [
|
|
"unwinder",
|
|
"fde-gnu-eh-frame-hdr",
|
|
"panic",
|
|
"personality",
|
|
] }
|
|
|
|
# 构建时依赖项
|
|
[build-dependencies]
|
|
kernel_build = { path = "../build-scripts/kernel_build" }
|
|
|
|
[dependencies.lazy_static]
|
|
version = "=1.4.0"
|
|
# 由于在no_std环境,而lazy_static依赖了spin库,因此需要指定其使用no_std
|
|
features = ["spin_no_std"]
|
|
|
|
# The development profile, used for `cargo build`
|
|
[profile.dev]
|
|
# opt-level = 0 # Controls the --opt-level the compiler builds with
|
|
debug = true # Controls whether the compiler passes `-g`
|
|
|
|
# The release profile, used for `cargo build --release`
|
|
[profile.release]
|
|
debug = false
|
|
# debug = true
|