Я не могу понять .type и .func в этом коде.
static struct packet_type ip_packet_type __read_mostly = {
.type = cpu_to_be16(ETH_P_IP),
.func = ip_rcv,};
На это ссылаются в:
net/ipv4/af_inet.c line 1751
Я не могу понять .type и .func в этом коде.
static struct packet_type ip_packet_type __read_mostly = {
.type = cpu_to_be16(ETH_P_IP),
.func = ip_rcv,};
На это ссылаются в:
net/ipv4/af_inet.c line 1751
Это ассоциирование обработчик протокола IP ip_rcv
к типу IP Ethernet ETH_P_IP
== 0x0800
Он используется функцией init_inet
чуть ниже того кода, где он вызывает dev_add_pack()
для добавления ip_rcv
в качестве обработчика для пакетов IP Ethernet.