[i=s] 本帖最后由 lantian0811 于 2010-11-4 11:14 编辑 [/i]
在ip_rcv这个函数是处理接受的封包
int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
struct net_device *orig_dev)
{
struct iphdr *iph;
u32 len;
if (skb->pkt_type == PACKET_OTHERHOST)//如果这个封包不是给自己的就丢弃
goto drop;
IP_UPD_PO_STATS_BH(dev_net(dev), IPSTATS_MIB_IN, skb->len);//这个接口很是陌生,在网上查也没查到是什么?请高手指点啊!
if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) //检查这个缓冲区是否还有别的引用
{
IP_INC_STATS_BH(dev_net(dev), IPSTATS_MIB_INDISCARDS);//这个接口也不知道是什么意思??高手指点
goto out;
}
红色部分请高手来指点啊!!!
123662981 于 2011-07-03 15:34:33发表:
不懂,帮顶
vtitle 于 2010-11-04 15:00:26发表:
不懂,帮顶