访问套接字缓冲区中的ARP头

时间:2010-10-07 09:50:27

标签: c linux-kernel

嵌入式系统(内核2.4.20)。在我的驱动程序中,我需要访问ARP头字段,包括MAC地址;不幸的是在include / linux / if_arp.h中注释了那些特定的字段。所以我试图在我的代码中用必要的字段定义我自己的'arp_hdr'结构:

struct arp_hdr {
    /* all the fields taken from include/linux/if_arp.h */
    /* and  additionaly these*/
   unsigned char       ar_sha[ETH_ALEN];
   unsigned char       ar_sip[4];
   unsigned char       ar_tha[ETH_ALEN];
   unsigned char       ar_tip[4];
}

int my_func(struct sk_buff *skb)
{
    struct arp_hdr  *arph;

   arph = (struct arp_hdr *)skb->nh.raw;

  /* now print out the contents of the ARP header, but I get garbage */
}

为什么我会得到垃圾,什么是正确的方法来做我想要的?

提前致谢!

0 个答案:

没有答案