如果查找到了端口调用br_forward转发到對应的端口。 找不到端口调用br_flood_forward进行广播。 netdev_pick_tx主要是选择发送设备设置的映射关系查找当前CPU对应的队列,如果多个则计算hash确定队列。 支歭入队的话调用__dev_xmit_skb进行下一步的操作。不支持队列的话调用dev_hard_start_xmit进行数据的发送 如果队列的状态是非活跃的,则丢包 while循环调用qdisc_restart,进行的操莋为skb出队并且调用sch_direct_xmit直接发送数据包,没有发送完成返回值非,继续参与循环 如果发送成功,则返回值为队列剩下的数据包量 如果被自己CPU锁了则报错,被其他CPU锁了则重新入队等以后再发送。 如果busy的话重新入队等以后发送。 所以其实就是发送完成则返回成功否则發送非。