netif_receive_skb是内核中一个非常重要的函数,所有的报文经过中断处理函数net_rx_action以后,会进入netif_receive_skb函数匹配报文对应的协议,不同的协议调用不同的协议处理函数,所以是IP,ARP等协议的一个分水岭,协议的注册匹配等工作实际上和网桥的处理无关,这里只是描述一下网络数据包进入网桥处理以前的一些操作。
packet_type 结构
struct packet_type {
};
__be16
int
例如,这里是IP协议的注册
static struct packet_type ip_packet_type = {
.type = __constant_htons(ETH_P_IP),
.func = ip_rcv,
.gso_send_check = inet_gso_send_check,
.gso_segment = inet_gso_segment,
};
协议号为ETH_P_IP,ip协议的处理函数为ip_rcv.
联系客服