protoname.h
上传用户:juan65231
上传日期:2014-02-17
资源大小:194k
文件大小:2k
源码类别:

网络

开发平台:

Unix_Linux

  1. #ifndef __protoname_h__
  2. #define __protoname_h__
  3. #include "protoname_pkt.h"
  4. // #include "protoname_rtable.h"
  5. #include <agent.h>
  6. #include <packet.h>
  7. #include <trace.h>
  8. #include <timer-handler.h>
  9. #include <random.h>
  10. #include <classifier-port.h>
  11. #include <mobilenode.h>
  12. #include "arp.h"
  13. #include "ll.h"
  14. #include "mac.h"
  15. #include "ip.h"
  16. #include "delay.h"
  17. #define CURRENT_TIME Scheduler::instance().clock()
  18. #define JITTER (Random::uniform()*0.5)
  19. class Protoname; // forward declaration
  20. /* Timers */
  21. //class Protoname_PktTimer : public TimerHandler {
  22. //    public:
  23. //    Protoname_PktTimer(Protoname* agent) : TimerHandler() {
  24. //     agent_ = agent;
  25. //    }
  26. //    
  27. //    protected:
  28. //    Protoname* agent_;
  29. //    virtual void expire(Event* e);
  30. //};
  31. /* Agent */
  32. class Protoname : public Agent {
  33. //   /* Friends */
  34. //   friend class Protoname_PktTimer;
  35.    /* Private members */
  36.    nsaddr_t ra_addr_;
  37. //    protoname_rtable rtable_;
  38.    int accesible_var_;
  39.    u_int8_t seq_num_;       u_int16_t key_element;           //afeirgoo add here 20/06/07    u_int16_t pkt_pairkeys_[10];    nsaddr_t  pkt_neighbours_[10];         int index;
  40.    protected:
  41.    MobileNode* node_;
  42.    PortClassifier* dmux_; // For passing packets up to agents.
  43.    Trace* logtarget_; // For logging.
  44. //    Protoname_PktTimer pkt_timer_; // Timer for sending packets.
  45.    inline nsaddr_t& ra_addr() { return ra_addr_; }
  46.    //inline int& accessible_var() { return accesible_var_; }
  47.  
  48.    void forward_data(Packet*);
  49.    void recv_protoname_pkt(Packet*);
  50.    void send_protoname_pkt(nsaddr_t);    void send_protoname_pairkey();       void init();
  51.   
  52. //   void reset_protoname_pkt_timer();
  53.  
  54.    public:
  55.    Protoname(nsaddr_t);
  56.    int command(int, const char*const*);
  57.    void recv(Packet*, Handler*);
  58.    //void mac_failed(Packet*);
  59. };
  60. #endif