получить доступ к заголовку ARP в буфере сокета - PullRequest
2 голосов
/ 07 октября 2010

встроенная система (ядро 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 */
}

Почему я получаю мусор и как правильно делать то, что я хочу?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...