linux下修改E100驱动接收指定格式数据包的问题
我现在需要修改E100驱动来接收指定格式的数据包接收的数据包的格式为“ 我的MAC+对方MAC+协议号+应用层数据 ”
我修改了驱动之后可以对数据包进行解析并传送给应用层,可是出现一个问题
应为E100网卡的物理MAC地址不可更改,我就使用了一个虚拟的MAC来代替,当要接收的数据包中“我的MAC”与网卡的实际物理MAC一致时,
可以接收到数据包并且处理没有问题;但是如果设置为不一致的MAC时,都接收不到数据包
请问有大侠能像设置为混杂模式一样让E100驱动接收到任何形式的数据,然后在驱动中再做校验判断的方法么??
在E100驱动中,那里能判断网卡硬件接收到了数据???
回复 #1 zqp0071689 的帖子
你这样改可能不太对的,因为TCP/IP协议栈已经默认了标准的格式来处理这个数据包,你这样改导致在协议栈处理数据包的时候,指针不对了,另外,校验和可能也不对了,所以是错误的。 设置混杂模式的方法要看 DEVICE 的DATA SHEET. 如果是RTL8139, 有一个接收寄存器,写入不同的数值对应不同的接收方法. E100应该也差不多.LS说的也值得考虑. LZ把驱动里的包改了,那么上层协议呢? 是不是匹配的? 都是要考虑的.
页:
[1]