免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1872 | 回复: 3
打印 上一主题 下一主题

[驱动] 向linux内核发送目的地址为组播地址的数据链路帧 [复制链接]

论坛徽章:
1
辰龙
日期:2013-11-28 20:23:14
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-25 11:39 |只看该作者 |倒序浏览
我在开发板上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里面将报文丢弃了?
不知道是哪方便的问题? 请大神指点。。

论坛徽章:
1
辰龙
日期:2013-11-28 20:23:14
2 [报告]
发表于 2013-09-28 11:25 |只看该作者
这么大个坛子 就没人知道吗?。。。。
指点下啊

论坛徽章:
1
辰龙
日期:2013-11-28 20:23:14
3 [报告]
发表于 2013-09-28 12:36 |只看该作者
好吧 我已经知道 原因在哪了 看来还得靠自己

论坛徽章:
0
4 [报告]
发表于 2013-09-28 23:48 来自手机 |只看该作者
如果网卡驱动没丢弃的话,我觉得会不会被桥处理勾走了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP