⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dev_dummy.c

📁 一个基于linux的TCP/IP协议栈的实现
💻 C
字号:
/* dev.c * linqianghe@163.com * 2006-09-09 */#include "dev.h"#include "dev_dummy.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;}int neigh_resolve_output_dummy( struct sk_buff *skb ){	PR_DEBUG( "do the arp protocol here!\n" );	return dev_queue_xmit_dummy( skb );}EXPORT_SYMBOL_GPL( neigh_resolve_output_dummy );

⌨️ 快捷键说明

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