2个不稳定版本
0.2.1 | 2024年1月21日 |
---|---|
0.1.0 | 2023年3月17日 |
#500 在 硬件支持
用于 casperfpga
41KB
733 行
tapcp_rs
针对与某些CASPER协作FPGA板交互的TAPCP协议的Rust实现。
目前功能尚不完整,主要缺少与闪存交互的功能。
待办事项
在Rust中重新实现CSL,这样我们就不需要依赖外部C编译器和不安全的FFI
为什么这个实现中包含TFTP的实现
我找不到TFTP客户端crate,而且使用“规范”实现似乎很简单,只有大约300行C代码。
与远程TAPCP客户端通信
与这个包的细节无关,我发现了一个与远程TFTP客户端(包括运行TAPCP的客户端)交互的简单方法。问题是TFTP运行在UDP上,所以你不能使用SSH代理来访问它。为了解决这个问题,你可以使用VPN或一个叫做sshuttle的软件。使用TPROXY模式,你可以将给定子网上的所有流量代理到你的远程机器,而无需服务器上的管理员权限。
例如,我使用以下命令来测试这个包
在首次启动(客户端)时,我运行
ip route add local default dev lo table 100
ip rule add fwmark 0x01 lookup 100
ip -6 route add local default dev lo table 100
ip -6 rule add fwmark 0x01 lookup 100
然后,为了开启对192.168.0.x子网的代理,我执行
sudo sshuttle --method=tproxy -t 0x01 -r <username@server-addr> 192.168.0.0/24
待办事项
设置为nostd,这样我们就可以在某个时候在FPGA软核上运行这个程序
依赖项
~2–2.9MB
~53K SLoC