交换机,linux系统
在协议栈内进行数据截取,如果是发往本机的数据就不处理,
所以需要获取到"br0"的MAC地址与数据包的目的MAC进行比较判断
请问在协议栈内如何获取本机"br0"的mac ??

解决方案 »

  1.   

    自己找到了方法, 用 dev_get_by_name(&init_net,"br0") 可以获取到net_device结构体,  里面的 dev_addr 参数就是MAC地址
      

  2.   

    。学习了。这个函数一直在用,直到看了这篇文章才知道net_device结构体含有mac地址,见识浅薄啊,之前尝试获取mac地址的时候是采取这样的方法,根据进来的报文目的ip地址匹配本机IP后获取其目的mac的方式。这里想问楼主一下, 假如本机有多个接口,例如eth0, eth1...,那该如何在内核层面获取所有接口呢,
      

  3.   

    再添加一些内容,net_device结构体的填充是在执行netdev_add函数的时候进行的,具体在网卡驱动的probe函数那边应该