feat(net): 桥接网络支持 (#1287)
* 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>