이전에 addr()을 사용하면 현제 무선 노드의 node 번호를 알 수 있다고 했다.
본인은 0번을 BS로 설정했기 때문에 결과가 0이 나오면 AP이다.
현제의 큐 상태를 확인하기 위한 소스의 수정은 크게 2가지로 나뉜다.
먼저 ns-2.33/queue/Queue.h에서 dequeue로 현재 패킷이 이벤트가 일어날 때의 큐 사이즈를 불러온다.
virtual Packet* enque(Packet* p) { // Returns previous tail
Packet* pt = tail_;
if (!tail_) head_= tail_= p;
else {
tail_->next_= p;
tail_= p;
}
tail_->next_= 0;
++len_;
++num_p_; //들어오는 패킷에 시퀀스 넘버를 할당하여 deq와 비교할 때 썼다.
hdr_cmn::access(p)->num_en=num_p_; //packet.h에 접근하여 현제 이벤트의 패킷 정보를 변경한다.
bytes_ += hdr_cmn::access(p)->size();
hdr_cmn::access(p)->enq_q_len_=len_; // 현제 큐 길이를 저장한다.
return pt;
}
virtual Packet* deque() {
if (!head_) return 0;
Packet* p = head_;
head_= p->next_; // 0 if p == tail_
if (p == tail_) head_= tail_= 0;
--len_;
bytes_ -= hdr_cmn::access(p)->size();
hdr_cmn::access(p)->deq_q_len_=len_; //실제 사용한 변수 여러 변수를 선언하고 사용하지 않더라도 남겨 둔 이유는
차 후 다른 실험들을 할 때 사용하기 위해서이다. 주석처릴 잘해야하는데 잘 안된다.
return p;
본인은 0번을 BS로 설정했기 때문에 결과가 0이 나오면 AP이다.
현제의 큐 상태를 확인하기 위한 소스의 수정은 크게 2가지로 나뉜다.
먼저 ns-2.33/queue/Queue.h에서 dequeue로 현재 패킷이 이벤트가 일어날 때의 큐 사이즈를 불러온다.
virtual Packet* enque(Packet* p) { // Returns previous tail
Packet* pt = tail_;
if (!tail_) head_= tail_= p;
else {
tail_->next_= p;
tail_= p;
}
tail_->next_= 0;
++len_;
++num_p_; //들어오는 패킷에 시퀀스 넘버를 할당하여 deq와 비교할 때 썼다.
hdr_cmn::access(p)->num_en=num_p_; //packet.h에 접근하여 현제 이벤트의 패킷 정보를 변경한다.
bytes_ += hdr_cmn::access(p)->size();
hdr_cmn::access(p)->enq_q_len_=len_; // 현제 큐 길이를 저장한다.
return pt;
}
virtual Packet* deque() {
if (!head_) return 0;
Packet* p = head_;
head_= p->next_; // 0 if p == tail_
if (p == tail_) head_= tail_= 0;
--len_;
bytes_ -= hdr_cmn::access(p)->size();
hdr_cmn::access(p)->deq_q_len_=len_; //실제 사용한 변수 여러 변수를 선언하고 사용하지 않더라도 남겨 둔 이유는
차 후 다른 실험들을 할 때 사용하기 위해서이다. 주석처릴 잘해야하는데 잘 안된다.
return p;
}
ns-2.33/common/packet.h의 struct hdr_cmn에 필요한 변수를 넣는다.
나는
int enq_q_len_;
int deq_q_len_;
int num_en;
세 변수를 넣어두었다.
ns-2.33/mac/mac-802_11.cc에서 사용하기 위해선 다음과 같은 절차를 수행한다.
struct hdr_cmn *hdr = HDR_CMN(p);
hdr->deq_q_len_
이렇게 하면 원하는 패킷의 정보를 얻을 수 있다.
ns-2.33/common/packet.h의 struct hdr_cmn에 필요한 변수를 넣는다.
나는
int enq_q_len_;
int deq_q_len_;
int num_en;
세 변수를 넣어두었다.
ns-2.33/mac/mac-802_11.cc에서 사용하기 위해선 다음과 같은 절차를 수행한다.
struct hdr_cmn *hdr = HDR_CMN(p);
hdr->deq_q_len_
이렇게 하면 원하는 패킷의 정보를 얻을 수 있다.
'Network > Ns2_simulation' 카테고리의 다른 글
TCP와 UDP (0) | 2009.02.18 |
---|---|
거지같은... 논문들... ㅡㅡㅋ 믿을게 없다. ns2 802.11b udp 실험에서.. (1) | 2009.02.09 |
Node 30개인 경우 CWmin 8 CWmax8의 결과와 재전송의 변화에 따른 결과 (0) | 2009.01.21 |