项目简介
本项目是基于C++编程语言和硬件抽象层(HAL)的网络路由实验框架。其目的是通过提供通用接口简化与底层网络硬件的交互,降低网络编程复杂性。借助HAL,开发者能在不同平台复用代码,便于开展网络功能测试。
项目的主要特性和功能
- 硬件抽象层(HAL):提供通用接口,隐藏底层硬件复杂性,让开发者可在不同平台运行相同代码。
- 多平台支持:支持Linux、macOS、stdio和Xilinx FPGA等多种后端,保证代码可移植性。
- 方便的测试机制:提供文件读写PCAP的后端,支持黑箱测试,能在真机调试前解决大部分问题。
- 实验验收流程:包含本地自测、在线测试和实验验收三部分,确保实验完整且正确。
- 丰富的示例和文档:提供多个示例程序与详细文档,助力开发者理解和使用框架。
安装使用步骤
1. 环境准备
确保系统已安装以下依赖:
bash
sudo apt install git make cmake python3 python3-pip libpcap-dev libreadline-dev libncurses-dev wireshark tshark iproute2 g++
pip3 install pyshark
2. 复制项目仓库
bash
cd Router-Lab
git submodule update --init --recursive
3. 编译和配置HAL
选择合适的后端进行编译:
bash
mkdir build
cd build
cmake .. -DBACKEND=Linux
make router_hal # 编译 HAL 库,生成 ./HAL/librouter_hal.a
make capture # 编译 Example 中的 capture,生成 ./Example/capture
make # 编译 HAL 库和所有 Example
4. 运行示例程序
进入Example
目录,运行示例程序,如capture
:
bash
cd Example
sudo ./capture
5. 进行本地自测
进入Homework
目录,选择相应题目自测:
bash
cd Homework/checksum
make grade # 运行评分脚本,进行本地自测
6. 在线测试
在OJ平台提交代码进行在线测试,保证提交的代码文件与本地自测时一致。
7. 实验验收
按实验验收流程完成实验的三个部分,确保所有测试通过。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】