亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dsr.h

?? DSR-UU is a DSR implementation that runs in Linux and in the ns-2 network simulator. DSR-UU imple
?? H
字號:
/* Copyright (C) Uppsala University * * This file is distributed under the terms of the GNU general Public * License (GPL), see the file LICENSE * * Author: Erik Nordstr?m, <erikn@it.uu.se> */#ifndef _DSR_H#define _DSR_H#ifdef __KERNEL__#include <asm/byteorder.h>#include <linux/types.h>//#include <linux/in.h>#include <linux/netdevice.h>#include <linux/skbuff.h>#include <linux/ip.h>#include <linux/time.h>#ifdef KERNEL26#include <linux/jiffies.h>#endif#else#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <endian.h>#include <netinet/in.h>#endif				/* __KERNEL__ */#include "dsr-pkt.h"#include "timer.h"#ifndef NO_GLOBALS#define DSR_BROADCAST ((unsigned int) 0xffffffff)#ifdef NS2#define IPPROTO_DSR PT_DSR#else#define IPPROTO_DSR 168		/* Is this correct? */#endif#define IP_HDR_LEN 20#define DSR_OPTS_MAX_SIZE 50	/* This is used to reduce the MTU of the DSR *				 * device so that packets are not too big after				 * adding the DSR header. A better solution				 * should probably be found... */enum confval {#ifdef DEBUG	PrintDebug,#endif	FlushLinkCache,	PromiscOperation,	BroadCastJitter,	RouteCacheTimeout,	SendBufferTimeout,	SendBufferSize,	RequestTableSize,	RequestTableIds,	MaxRequestRexmt,	MaxRequestPeriod,	RequestPeriod,	NonpropRequestTimeout,	RexmtBufferSize,	MaintHoldoffTime,	MaxMaintRexmt,	UseNetworkLayerAck,	TryPassiveAcks,	PassiveAckTimeout,	GratReplyHoldOff,	MAX_SALVAGE_COUNT,	CONFVAL_MAX,};enum confval_type {	SECONDS,	MILLISECONDS,	MICROSECONDS,	NANOSECONDS,	QUANTA,	BINARY,	COMMAND,	CONFVAL_TYPE_MAX,};#define MAINT_BUF_MAX_LEN 100#define RREQ_TBL_MAX_LEN 64	/* Should be enough */#define SEND_BUF_MAX_LEN 100#define RREQ_TLB_MAX_ID 16static struct {	const char *name;	const unsigned int val;	enum confval_type type;} confvals_def[CONFVAL_MAX] = {#ifdef DEBUG	{	"PrintDebug", 0, BINARY},#endif	{	"FlushLinkCache", 1, COMMAND}, {	"PromiscOperation", 1, BINARY}, {	"BroadCastJitter", 20, MILLISECONDS}, {	"RouteCacheTimeout", 300, SECONDS}, {	"SendBufferTimeout", 30, SECONDS}, {	"SendBufferSize", SEND_BUF_MAX_LEN, QUANTA}, {	"RequestTableSize", RREQ_TBL_MAX_LEN, QUANTA}, {	"RequestTableIds", RREQ_TLB_MAX_ID, QUANTA}, {	"MaxRequestRexmt", 16, QUANTA}, {	"MaxRequestPeriod", 10, SECONDS}, {	"RequestPeriod", 500, MILLISECONDS}, {	"NonpropRequestTimeout", 30, MILLISECONDS}, {	"RexmtBufferSize", MAINT_BUF_MAX_LEN}, {	"MaintHoldoffTime", 250, MILLISECONDS}, {	"MaxMaintRexmt", 2, QUANTA}, {	"UseNetworkLayerAck", 1, BINARY}, {	"TryPassiveAcks", 1, QUANTA}, {	"PassiveAckTimeout", 100, MILLISECONDS}, {	"GratReplyHoldOff", 1, SECONDS}, {	"MAX_SALVAGE_COUNT", 15, QUANTA}};struct dsr_node {	struct in_addr ifaddr;	struct in_addr bcaddr;	unsigned int confvals[CONFVAL_MAX];#ifdef __KERNEL__	char slave_ifname[IFNAMSIZ];	struct net_device *slave_dev;	struct in_device *slave_indev;	struct net_device_stats stats;	spinlock_t lock;#endif};#ifdef __KERNEL__#define DSR_SPIN_LOCK(l)    spin_lock(l)#define DSR_SPIN_UNLOCK(l)  spin_unlock(l)#define MALLOC(s, p)        kmalloc(s, p)#define FREE(p)             kfree(p)#define NSCLASS#define XMIT(pkt)           dsr_dev_xmit(pkt)#else#define DSR_SPIN_LOCK(l)#define DSR_SPIN_UNLOCK(l)#endif				/* __KERNEL__ */#ifdef __KERNEL__#define ConfVal(cv) (get_confval(cv))#define ConfValToUsecs(cv) (confval_to_usecs(cv))extern struct dsr_node *dsr_node;static inline unsigned int get_confval(enum confval cv){	unsigned int val = 0;	if (dsr_node) {		DSR_SPIN_LOCK(&dsr_node->lock);		val = dsr_node->confvals[cv];		DSR_SPIN_UNLOCK(&dsr_node->lock);	}	return val;}static inline int set_confval(enum confval cv, unsigned int val){	if (dsr_node) {		DSR_SPIN_LOCK(&dsr_node->lock);		dsr_node->confvals[cv] = val;		DSR_SPIN_UNLOCK(&dsr_node->lock);	} else		return -1;	return val;}static inline void dsr_node_init(struct dsr_node *dn, char *ifname){	int i;	dn->slave_indev = NULL;	dn->slave_dev = NULL;	memcpy(dn->slave_ifname, ifname, IFNAMSIZ);		spin_lock_init(&dn->lock);	for (i = 0; i < CONFVAL_MAX; i++) {		dn->confvals[i] = confvals_def[i].val;	}}static inline struct in_addr my_addr(void){	static struct in_addr my_addr;	if (dsr_node) {		DSR_SPIN_LOCK(&dsr_node->lock);		my_addr = dsr_node->ifaddr;		DSR_SPIN_UNLOCK(&dsr_node->lock);	}	return my_addr;}static inline unsigned long time_add_msec(unsigned long msecs){	struct timespec t;	t.tv_sec = msecs / 1000;	t.tv_nsec = (msecs * 1000000) % 1000000000;	return timespec_to_jiffies(&t);}static inline int get_slave_dev_ifindex(void){	int ifindex = -1;	if (dsr_node) {		DSR_SPIN_LOCK(&dsr_node->lock);		if (dsr_node->slave_dev)			ifindex = dsr_node->slave_dev->ifindex;		DSR_SPIN_UNLOCK(&dsr_node->lock);	}	return ifindex;}static inline void dsr_node_lock(struct dsr_node *dnode){	spin_lock(&dnode->lock);}static inline void dsr_node_unlock(struct dsr_node *dnode){	spin_unlock(&dnode->lock);}int dsr_ip_recv(struct sk_buff *skb);int do_mackill(char *mac);#endif#endif				/* NO_GLOBALS */#ifndef NO_DECLSstatic inline usecs_t confval_to_usecs(enum confval cv){	usecs_t usecs = 0;	unsigned int val;	val = ConfVal(cv);	switch (confvals_def[cv].type) {	case SECONDS:		usecs = val * 1000000;		break;	case MILLISECONDS:		usecs = val * 1000;		break;	case MICROSECONDS:		usecs = val;		break;	case NANOSECONDS:		usecs = val / 1000;		break;	case BINARY:	case QUANTA:	case COMMAND:	case CONFVAL_TYPE_MAX:		break;	}	return usecs;}#endif				/* NO_DECLS */#endif				/* _DSR_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品免费视频人成| 久久久久99精品一区| 激情综合亚洲精品| 天天操天天综合网| 亚洲成av人片在www色猫咪| 一区二区三区自拍| 亚洲美女偷拍久久| 香蕉成人伊视频在线观看| 午夜精品影院在线观看| 日韩精品1区2区3区| 久久久亚洲精品石原莉奈 | 欧美日韩高清在线| 欧美久久久久久蜜桃| 另类小说视频一区二区| 91丨porny丨国产| 91视频免费看| 日韩精品成人一区二区三区| 一区在线播放视频| 中文字幕一区二区三区乱码在线| 国产一区二区精品久久99| 国产在线一区二区综合免费视频| 国产精品福利一区二区三区| 国产精品久久久久久久岛一牛影视| 欧美日韩在线综合| 欧美成人女星排行榜| 中文字幕va一区二区三区| 日韩码欧中文字| 午夜精品影院在线观看| 国产酒店精品激情| 在线免费亚洲电影| 风流少妇一区二区| 色激情天天射综合网| 67194成人在线观看| 在线观看av一区| 国产精品护士白丝一区av| 夜夜嗨av一区二区三区网页| 美女网站一区二区| 91社区在线播放| 日韩免费福利电影在线观看| 亚洲欧洲性图库| 免费观看在线综合| 色八戒一区二区三区| 精品少妇一区二区三区免费观看| 在线亚洲一区观看| 久久综合av免费| 亚洲v日本v欧美v久久精品| 一区二区三区四区在线播放| 免费欧美日韩国产三级电影| 91在线你懂得| 久久免费电影网| 国产视频一区不卡| 国产欧美日韩不卡| 中日韩免费视频中文字幕| 日韩国产成人精品| 91成人网在线| 中文字幕中文字幕一区二区| 久久精品国产久精国产| 在线免费观看日本欧美| 欧美国产精品一区二区三区| 精品系列免费在线观看| 欧美军同video69gay| 一区二区免费在线播放| 成人av在线资源网| 亚洲国产成人一区二区三区| 久久国产精品免费| 日韩欧美一区二区在线视频| 亚洲第一激情av| 欧洲精品在线观看| 亚洲欧美日韩国产综合| 午夜视频一区在线观看| 欧美体内she精视频| 91精品国产色综合久久不卡蜜臀| 欧美va日韩va| 久久99精品国产.久久久久久| 国产精品综合二区| 久久久美女毛片| 高清久久久久久| 中文字幕一区二区三区在线播放| 亚洲主播在线播放| 欧美三区在线视频| 亚洲成av人片在线| 国产一区二区女| 色哟哟国产精品| 一区二区三区精品| 久久不见久久见免费视频7| 欧美一区欧美二区| 美女视频黄 久久| 99久久99久久免费精品蜜臀| 91精品国产综合久久精品| 久久久久久久综合狠狠综合| 国产精品一二三四区| 国产精品免费看片| 免费欧美在线视频| 久久久精品免费免费| 99综合电影在线视频| 欧美xingq一区二区| 国产精品69毛片高清亚洲| 国产精品国模大尺度视频| 91久久精品午夜一区二区| 日韩电影在线免费看| 91一区在线观看| 亚洲va欧美va国产va天堂影院| 国产成人精品免费一区二区| 亚洲欧美偷拍卡通变态| 欧美群妇大交群中文字幕| 精品一区二区精品| 中文字幕一区二区三区不卡| 九色综合国产一区二区三区| 国产精品乱人伦中文| 欧美日韩免费高清一区色橹橹 | 91一区二区三区在线观看| 亚洲成人一区在线| 久久久久国产成人精品亚洲午夜 | 日韩久久久精品| 99精品视频一区二区三区| 日本伊人午夜精品| 国产精品欧美一级免费| 777欧美精品| 91蜜桃免费观看视频| 久草这里只有精品视频| 伊人色综合久久天天人手人婷| 国产宾馆实践打屁股91| 性做久久久久久久免费看| 中文在线资源观看网站视频免费不卡 | 欧美精品一区二区在线播放| 色吊一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 国产在线精品一区二区三区不卡| 制服.丝袜.亚洲.另类.中文| 成人黄色免费短视频| 国产在线播放一区三区四| 亚洲一区二区在线免费观看视频| 色婷婷亚洲精品| 亚洲高清免费在线| 1000部国产精品成人观看| 精品国产一区a| 国产成人精品一区二区三区网站观看 | 99精品在线观看视频| 激情伊人五月天久久综合| 三级影片在线观看欧美日韩一区二区| 91官网在线免费观看| 成人av在线观| 大胆亚洲人体视频| 国产一区二区三区国产| 久色婷婷小香蕉久久| 久久精品亚洲乱码伦伦中文| 日韩欧美成人一区二区| 91精品在线观看入口| 欧美色中文字幕| 男女男精品网站| 日韩国产欧美三级| 首页综合国产亚洲丝袜| 午夜久久久久久久久久一区二区| 日韩欧美的一区| 欧美大黄免费观看| 97超碰欧美中文字幕| 日本亚洲免费观看| 美女爽到高潮91| 中文子幕无线码一区tr| 中文字幕av一区 二区| 亚洲欧洲日韩av| 亚洲日本电影在线| 精品区一区二区| 99re在线视频这里只有精品| av在线免费不卡| 在线观看成人小视频| 国产精品综合av一区二区国产馆| 国产精品久久三区| 亚洲最新视频在线播放| 亚洲成av人片一区二区| 国产午夜亚洲精品理论片色戒| 欧美综合一区二区| 顶级嫩模精品视频在线看| 成人一区二区三区视频在线观看| 婷婷中文字幕一区三区| 精品一区二区三区在线播放| 亚洲资源在线观看| 免费av成人在线| 国产 欧美在线| 欧美日韩专区在线| 精品国产乱码久久久久久影片| 欧美亚洲综合另类| 久久久一区二区三区捆绑**| 亚洲人快播电影网| 免费看日韩精品| 99久久久精品免费观看国产蜜| 精品一二线国产| 色婷婷久久99综合精品jk白丝| 国产iv一区二区三区| 欧美性淫爽ww久久久久无| 欧美va亚洲va| 日韩欧美高清一区| 亚洲欧美乱综合| 精一区二区三区| 色www精品视频在线观看| 欧美tk丨vk视频| 亚洲国产视频a| 99综合影院在线| 精品精品欲导航| 午夜视频一区二区|