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

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

?? dsragent.h

?? ns-2 simulation code manet
?? H
字號:
/* * dsragent.h * Copyright (C) 2000 by the University of Southern California * $Id: dsragent.h,v 1.10 2005/08/25 18:58:04 johnh Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * The copyright of this module includes the following * linking-with-specific-other-licenses addition: * * In addition, as a special exception, the copyright holders of * this module give you permission to combine (via static or * dynamic linking) this module with free software programs or * libraries that are released under the GNU LGPL and with code * included in the standard release of ns-2 under the Apache 2.0 * license or under otherwise-compatible licenses with advertising * requirements (or modified versions of such code, with unchanged * license).  You may copy and distribute such a system following the * terms of the GNU GPL for this module and the licenses of the * other code concerned, provided that you include the source code of * that other code when and as the GNU GPL requires distribution of * source code. * * Note that people who make modified versions of this module * are not obligated to grant this special exception for their * modified versions; it is their choice whether to do so.  The GNU * General Public License gives permission to release a modified * version without this exception; this exception also makes it * possible to release a modified version which carries forward this * exception. * */// Other copyrights might apply to parts of this software and are so noted when applicable.//// Ported from CMU/Monarch's code, appropriate copyright applies.  /* -*- c++ -*-   dsragent.h   */#ifndef _DSRAgent_h#define _DSRAgent_hclass DSRAgent;#include <stdarg.h>#include <object.h>#include <agent.h>#include <trace.h>#include <packet.h>#include <dsr-priqueue.h>#include <mac.h>#include <mobilenode.h>#include "path.h"#include "srpacket.h"#include "routecache.h"#include "requesttable.h"#include "flowstruct.h"#define BUFFER_CHECK 0.03	// seconds between buffer checks#define RREQ_JITTER 0.010	// seconds to jitter broadcast route requests#define SEND_TIMEOUT 30.0	// # seconds a packet can live in sendbuf#define SEND_BUF_SIZE 64#define RTREP_HOLDOFF_SIZE 10#define GRAT_ROUTE_ERROR 0	// tell_addr indicating a grat route err#define DSR_FILTER_TAP		/* process a packet only once via the tap */class ArpCallbackClass;struct RtRepHoldoff {  ID requestor;  ID requested_dest;  int best_length;  int our_length;};struct SendBufEntry {  Time t;			// insertion time  SRPacket p;};struct GratReplyHoldDown {  Time t;  Path p;};class SendBufferTimer : public TimerHandler {public:  SendBufferTimer(DSRAgent *a) : TimerHandler() { a_ = a;}  void expire(Event *e);protected:  DSRAgent *a_;};LIST_HEAD(DSRAgent_List, DSRAgent);class DSRAgent : public Tap, public Agent {public:  virtual int command(int argc, const char*const* argv);  virtual void recv(Packet*, Handler* callback = 0);  void tap(const Packet *p);  // tap out all data packets received at this host and promiscously snoop  // them for interesting tidbits  void Terminate(void);	// called at the end of the simulation to purge all packets  void sendOutBCastPkt(Packet *p);    DSRAgent();  ~DSRAgent();private:  // ktnahm for DAMPEN policy  int beta_;     // bulk loss threshold activating maintenance operation  int nlinkfail; // number of successive link failure  Trace *logtarget;  int off_mac_;  int off_ll_;  int off_ip_;  int off_sr_;  // will eventually need to handle multiple infs, but this is okay for  // now 1/28/98 -dam  ID net_id, MAC_id;		// our IP addr and MAC addr  NsObject *ll;		        // our link layer output   CMUPriQueue *ifq;		// output interface queue  Mac *mac_;  // extensions for wired cum wireless sim mode  MobileNode *node_;  int diff_subnet(ID dest, ID myid);    // extensions for mobileIP  NsObject *port_dmux_;    // my port dmux  #ifdef DSR_FILTER_TAP#define TAP_CACHE_SIZE	1024#define TAP_BITMASK	(TAP_CACHE_SIZE - 1)  /*   *  A cache of recently seen packets on the TAP so that I   *  don't process them over and over again.   */  int tap_uid_cache[TAP_CACHE_SIZE];#endif  /******** internal state ********/  RequestTable request_table;  RouteCache *route_cache;  SendBufEntry send_buf[SEND_BUF_SIZE];  SendBufferTimer send_buf_timer;  int route_request_num;	// number for our next route_request  int num_heldoff_rt_replies;  RtRepHoldoff rtrep_holdoff[RTREP_HOLDOFF_SIZE]; // not used 1/27/98  GratReplyHoldDown grat_hold[RTREP_HOLDOFF_SIZE];  int grat_hold_victim;  /* for flow state ych 5/2/01 */  FlowTable flow_table;  ARSTable  ars_table;  bool route_error_held; // are we holding a rt err to propagate?  ID err_from, err_to;	 // data from the last route err sent to us   Time route_error_data_time; // time err data was filled in  /****** internal helper functions ******/  /* all handle<blah> functions either free or hand off the      p.pkt handed to them */  void handlePktWithoutSR(SRPacket& p, bool retry);  /* obtain a source route to p's destination and send it off */  void handlePacketReceipt(SRPacket& p);  void handleForwarding(SRPacket& p);  void handleRouteRequest(SRPacket &p);  /* process a route request that isn't targeted at us */  /* flow state handle functions ych */  void handleFlowForwarding(SRPacket &p);  void handleFlowForwarding(SRPacket &p, int flowidx);  void handleDefaultForwarding(SRPacket &p);  bool ignoreRouteRequestp(SRPacket& p);  // assumes p is a route_request: answers true if it should be ignored.  // does not update the request table (you have to do that yourself if  // you want this packet ignored in the future)  void sendOutPacketWithRoute(SRPacket& p, bool fresh, Time delay = 0.0);  // take packet and send it out packet must a have a route in it  // fresh determines whether route is reset first  // time at which packet is sent is scheduled delay secs in the future  // pkt.p is freed or handed off  void sendOutRtReq(SRPacket &p, int max_prop = MAX_SR_LEN);  // turn p into a route request and launch it, max_prop of request is  // set as specified  // p.pkt is freed or handed off  void getRouteForPacket(SRPacket &p, bool retry);  /* try to obtain a route for packet     pkt is freed or handed off as needed, unless in_buffer == true     in which case they are not touched */  void acceptRouteReply(SRPacket &p);  /* - enter the packet's source route into our cache     - see if any packets are waiting to be sent out with this source route     - doesn't free the p.pkt */  void returnSrcRouteToRequestor(SRPacket &p);  // take the route in p, add us to the end of it and return the  // route to the sender of p  // doesn't free p.pkt  bool replyFromRouteCache(SRPacket &p);   /* - see if can reply to this route request from our cache     if so, do it and return true, otherwise, return false      - frees or hands off p.pkt i ff returns true */  void processUnknownFlowError(SRPacket &p, bool asDefault);  void processFlowARS(const Packet *packet);  // same idea as below, but for unknown flow error  void processBrokenRouteError(SRPacket& p);  // take the error packet and proccess our part of it.  // if needed, send the remainder of the errors to the next person  // doesn't free p.pkt  void sendUnknownFlow(SRPacket &p, bool asDefault, u_int16_t flowid = 0);  void xmitFailed(Packet *pkt, const char* reason = "DROP_RTR_MAC_CALLBACK");  void xmitFlowFailed(Packet *pkt, const char* reason = "DROP_RTR_MAC_CALLBACK");  /* mark our route cache reflect the failure of the link between     srh[cur_addr] and srh[next_addr], and then create a route err     message to send to the orginator of the pkt (srh[0])      p.pkt freed or handed off */    void undeliverablePkt(Packet *p, int mine);  /* when we've got a packet we can't deliver, what to do with it?      frees or hands off p if mine = 1, doesn't hurt it otherwise */  void dropSendBuff(SRPacket &p);  // log p as being dropped by the sendbuffer in DSR agent    void stickPacketInSendBuffer(SRPacket& p);    void sendBufferCheck();  // see if any packets in send buffer need route requests sent out  // for them, or need to be expired  void sendRouteShortening(SRPacket &p, int heard_at, int xmit_at);  // p was overheard at heard_at in it's SR, but we aren't supposed to  // get it till xmit_at, so all the nodes between heard_at and xmit_at  // can be elided.  Send originator of p a gratuitous route reply to   // tell them this.  void testinit();  void trace(char* fmt, ...);  friend void XmitFailureCallback(Packet *pkt, void *data);  friend void XmitFlowFailureCallback(Packet *pkt, void *data);  friend int FilterFailure(Packet *p, void *data);  friend class SendBufferTimer;#if 0  void scheduleRouteReply(Time t, Packet *new_p);  // schedule a time to send new_p if we haven't heard a better  // answer in the mean time.  Do not modify new_p after calling this  void snoopForRouteReplies(Time t, Packet *p);  friend void RouteReplyHoldoffCallback(Node *node, Time time, EventData *data);#endif //0  /* the following variables are used to send end-of-sim notices to all objects */public:	LIST_ENTRY(DSRAgent) link;	static DSRAgent_List agthead;};#endif // _DSRAgent_h

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91黄色激情网站| 欧美一区二区三区婷婷月色| 亚洲成a天堂v人片| 久久久久国产精品免费免费搜索| 91久久免费观看| 国产成人av电影免费在线观看| 日韩精品亚洲专区| 亚洲精选一二三| 中文字幕的久久| 精品国产a毛片| 在线不卡的av| 在线观看日韩av先锋影音电影院| 国产99久久久国产精品免费看| 奇米精品一区二区三区四区| 亚洲国产精品久久久男人的天堂| 国产精品欧美经典| 国产欧美1区2区3区| 精品欧美黑人一区二区三区| 欧美一区二区成人| 欧美日韩一级片网站| 色8久久精品久久久久久蜜 | 欧美三级日韩三级国产三级| 成人理论电影网| 国产一区二区三区四区五区入口 | 在线免费视频一区二区| 成人91在线观看| 从欧美一区二区三区| 国产一区视频在线看| 久草精品在线观看| 韩国中文字幕2020精品| 国内欧美视频一区二区| 老司机一区二区| 蜜桃视频在线一区| 麻豆精品视频在线观看免费| 美女精品一区二区| 麻豆精品视频在线| 国内精品在线播放| 国产精品99久久久久久似苏梦涵| 国产美女精品一区二区三区| 国内精品久久久久影院色 | 精品亚洲国产成人av制服丝袜| 日本欧美一区二区在线观看| 日本一区中文字幕| 视频一区二区三区在线| 免费美女久久99| 国产在线视频一区二区| 国产suv精品一区二区三区| 成人污视频在线观看| 91偷拍与自偷拍精品| 日本电影亚洲天堂一区| 欧美日韩一区二区欧美激情| 91精品国产91久久综合桃花| 精品久久久久久久久久久久久久久| 精品国产乱码久久| 国产精品美女久久久久久久| 亚洲欧美一区二区不卡| 亚洲成人福利片| 久久电影网站中文字幕| 高清成人免费视频| 色综合色综合色综合色综合色综合| 色94色欧美sute亚洲13| 欧美一级电影网站| 国产欧美日韩综合| 亚洲精品中文在线观看| 奇米在线7777在线精品| 成人一道本在线| 欧美性色黄大片| 精品精品国产高清一毛片一天堂| 国产精品素人一区二区| 亚洲h精品动漫在线观看| 精品在线观看免费| 99re热这里只有精品视频| 欧美日韩免费不卡视频一区二区三区 | 亚洲美女视频在线观看| 欧美a级一区二区| 成人av综合在线| 欧美久久婷婷综合色| 久久久精品欧美丰满| 亚洲一区二区四区蜜桃| 国产在线看一区| 色哟哟国产精品| 久久亚区不卡日本| 亚洲韩国一区二区三区| 国产精选一区二区三区| 欧美自拍偷拍午夜视频| 久久久久国产一区二区三区四区| 亚洲一区自拍偷拍| 国产精品18久久久久| 欧美精品色综合| 国产精品久久久久一区 | 国产一区在线观看麻豆| 欧美图区在线视频| 国产欧美一区二区精品忘忧草| 午夜av一区二区三区| 成人一区二区在线观看| 日韩小视频在线观看专区| 亚洲美女屁股眼交3| 国产精品中文欧美| 56国语精品自产拍在线观看| 综合久久国产九一剧情麻豆| 国产在线精品免费| 欧美日韩国产高清一区二区| 日韩伦理av电影| 成人永久看片免费视频天堂| 日韩欧美一级二级三级久久久| 亚洲综合一二三区| av影院午夜一区| 久久久不卡网国产精品二区| 美国欧美日韩国产在线播放| 欧美中文字幕一区| 亚洲欧美日韩国产一区二区三区| 国产福利一区二区三区在线视频| 日韩欧美区一区二| 琪琪久久久久日韩精品| 欧美老女人第四色| 亚洲成人自拍一区| 欧美亚洲国产一区在线观看网站| 中文字幕高清一区| 国产盗摄女厕一区二区三区| 精品人伦一区二区色婷婷| 日韩国产在线一| 欧美日本不卡视频| 亚洲成年人网站在线观看| 欧美在线免费播放| 亚洲欧美偷拍三级| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品美女www爽爽爽| 国产91精品久久久久久久网曝门| 久久影院午夜论| 极品美女销魂一区二区三区| 精品日韩成人av| 国产综合一区二区| 久久久久久影视| 国产激情精品久久久第一区二区| 精品久久久久av影院| 激情综合色丁香一区二区| 精品久久久久久久久久久久久久久| 久久精品噜噜噜成人88aⅴ| 欧美成人猛片aaaaaaa| 国产一区二区三区久久悠悠色av| 久久综合丝袜日本网| 成人综合婷婷国产精品久久免费| 国产欧美日韩不卡免费| 高清免费成人av| 亚洲人成影院在线观看| 欧洲色大大久久| 日本大胆欧美人术艺术动态| 日韩欧美的一区| 国产高清一区日本| 亚洲三级久久久| 91激情五月电影| 日韩精品三区四区| 欧美精品一区二区在线观看| 国产成人av电影免费在线观看| 亚洲欧洲色图综合| 欧美日韩国产在线播放网站| 精品一区二区影视| 欧美激情综合五月色丁香小说| 99久久精品免费看| 亚洲国产精品一区二区尤物区| 欧美一级久久久| 成人做爰69片免费看网站| 一区二区三区四区中文字幕| 91麻豆精品国产无毒不卡在线观看| 久久国产精品第一页| 国产精品久久久久aaaa| 在线观看欧美精品| 久久99九九99精品| 国产精品全国免费观看高清| 在线亚洲+欧美+日本专区| 日本成人在线网站| 国产精品福利一区二区| 欧美日本一区二区三区四区| 国产一区欧美一区| 亚洲永久免费av| 久久久天堂av| 欧美猛男gaygay网站| 丁香一区二区三区| 亚洲成av人综合在线观看| 精品国产凹凸成av人网站| 91久久精品一区二区| 国产一区二区成人久久免费影院| 亚洲一区二区综合| 欧美韩国日本不卡| 91精品国产综合久久久久久久| 成人午夜精品一区二区三区| 日韩二区在线观看| 自拍偷拍亚洲激情| 精品久久久久久久人人人人传媒 | 色综合久久综合网欧美综合网| 免费观看30秒视频久久| 亚洲欧美激情小说另类| 久久中文字幕电影| 在线成人高清不卡| 91亚洲精品久久久蜜桃网站| 激情文学综合插| 蜜桃精品视频在线| 亚洲影院免费观看| 国产精品蜜臀在线观看| 久久婷婷国产综合精品青草|