dev_dummy.c

来自「一个基于linux的TCP/IP协议栈的实现」· C语言 代码 · 共 55 行

C
55
字号
/* dev.c * linqianghe@163.com * 2006-09-09 */#include "dev.h"#include "dev_dummy.h"#include "neighbour.h"#include "log.h"#include <linux/smp.h>#include <linux/net.h>#include <linux/netdevice.h>int netif_rx_dummy(struct sk_buff *skb){	PR_DEBUG( "receive a dummy packet!\n");	dev_put( skb->dev );	kfree_skb( skb );	return 0;}int dev_queue_xmit_dummy( struct sk_buff *skb ){	struct net_device *dev = skb->dev;	int rc = -ENETDOWN;	PR_DEBUG( "dev xmit!\n" );	local_bh_disable();	if( dev->flags & IFF_UP ){		int cpu = smp_processor_id();		if( dev->xmit_lock_owner != cpu ){			rc = 0;			HARD_TX_LOCK( dev, cpu );			if( !dev->hard_start_xmit(skb, dev) ){				HARD_TX_UNLOCK(dev);				goto out;			}			HARD_TX_UNLOCK( dev );			if( net_ratelimit() )				PR_WARN( "Virtual device %s asks to "								"queue packet!\n", dev->name );		}else{			if( net_ratelimit() )				PR_WARN( "Dead loop on virtual device "								"%s, fix it urgently!\n", dev->name );		}	}out:	local_bh_enable();	return rc;}EXPORT_SYMBOL_GPL( dev_queue_xmit_dummy );

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?