📄 dev_dummy.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 + -