技术开发 频道

自己动手编写嵌入式Bootloader之二

  3. Ethernet MAC层协议的实现

  上层的数据包(如IP包、ARP包)到来时,需要添加一个14字节的MAC头, 然后再交给网卡发送出去。 MAC头包含目的MAC地址、源MAC地址、协议类型三个字段。如下图所示。数据包末尾的CRC校验我们不使用。

  使用下面的代码填充MAC头。其中协议类型,对IP为0x0800, 对ARP为0x0806

  struct mac_header *p = (struct mac_header*)(buf);

  memcpy (p
->dest, NetServerEther, 6);

  memcpy (p
->src, NetOurEther, 6);

  p
->proto = htons(proto);
0
相关文章