//对ns2中的hdr_cmn头 ,源码进行注解
//源码来源于http://www.cs.mun.ca/~yzchen/code/ns-2.33/packet_8h_source.html
struct hdr_cmn { enum dir_t { DOWN= -1, NONE= 0, UP= 1
packet_t ptype_;
00570 int size_;
00571 int uid_;
00572 int error_;
00573 int errbitcnt_;
00574 int fecsize_;
00575 double ts_;
00576 int iface_;
00577 dir_t direction_;
00578
00579 char src_rt_valid;
00580 double ts_arr_;
00581
00582
00583 nsaddr_t prev_hop_;
00584 nsaddr_t next_hop_;
00585 int addr_type_;
00586 nsaddr_t last_hop_;
00587
00588
00589
00590 FailureCallback xmit_failure_;
00591 void *xmit_failure_data_;
00592
00593
00594
00595
00596
00597
00598 int xmit_reason_;
00599 #define XMIT_REASON_RTS 0x01
00600 #define XMIT_REASON_ACK 0x02
00601
00602
00603 int num_forwards_;
00604 int opt_num_forwards_;
00605
00606
00607
00608 double txtime_;
00609 inline double& txtime() { return(txtime_); }
00610
00611 static int offset_;
00612 inline static int& offset() { return offset_; }
00613 inline static hdr_cmn* access(const Packet* p) {
00614 return (hdr_cmn*) p->access(offset_);
00615 }
00616
00617
00618 inline packet_t& ptype() { return (ptype_); }
00619 inline int& size() { return (size_); }
00620 inline int& uid() { return (uid_); }
00621 inline int& error() { return error_; }
00622 inline int& errbitcnt() {return errbitcnt_; }
00623 inline int& fecsize() {return fecsize_; }
00624 inline double& timestamp() { return (ts_); }
00625 inline int& iface() { return (iface_); }
00626 inline dir_t& direction() { return (direction_); }//方向为UP或者down
00627
00628 inline nsaddr_t& next_hop() { return (next_hop_); }//下一跳的地址
00629 inline int& addr_type() { return (addr_type_); }
00630 inline int& num_forwards() { return (num_forwards_); }
00631 inline int& opt_num_forwards() { return (opt_num_forwards_); }
00632
00633
00634 ModulationScheme mod_scheme_;
00635 inline ModulationScheme& mod_scheme() { return (mod_scheme_); }
00636 };