- 论坛徽章:
- 1
|
我在开发板上linux上面
挂入动态模块
片段如下:
static struct packet_type lldp_packet_type __read_mostly = {
.type = cpu_to_be16(ETH_P_LLDP),
.func = lldp_skb_rcv,
};
xxx_init
{
...
dev_add_pack(&lldp_packet_type)
...
}
static int lldp_skb_rcv(struct sk_buff *skb, struct net_device *dev,
struct packet_type *pt, struct net_device *orig_dev)
{
printk("lldp_init->lldp_rcv calls\n");
return 0;
}
该模块 主要功能是接收类型为ETH_P_LLDP的报文,然后 调用printk打印
然后在主机上发送 目的地址为组播地址的报文
格式如下:
-------------------------------------------------------
|组播mac地址 | 源mac地址 | ETH_P_LLDP | ...data... | ...
-------------------------------------------------------
先以确定该报文已发出,且到达开发板,但是lldp_skb_rcv却貌似没有被调用。。
是netif_receive_skb里面将报文丢弃了?
不知道是哪方便的问题? 请大神指点。。 |
|